nginx非80端口http强转https

nginx非80端口http强转https

转载自https://www.orcy.net.cn/385.html

问题描述:

在默认80端口的状态下http如何跳转到默认443端口https,但是很多时候,我们nginx监听的并不是默认的80/443端口,这时候如何设置,例如,我的实例需要https访问8088端口,每次访问又不想手动输入https,想在默认输入test.orcy.net.cn:8088自动https://test.orcy.net.cn:8088,则nginx的配置文件需要如下设置

解决方案:
server {
         listen      8088 ssl;
         server_name  test.orcy.net.cn;
         ssl on;
         ssl_certificate /usr/local/nginx/key/server.crt;
         ssl_certificate_key /usr/local/nginx/key/server.key;
         ssl_session_timeout  60m;
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         ssl_ciphers  HIGH:!aNULL:!MD5;
         ssl_prefer_server_ciphers   on;
         error_page 497 301 https://$http_host$request_uri;

}
重点是,错误时返回301转成https :
 error_page 497 301 https://$http_host$request_uri; 
497 - normal request was sent to HTTPS
解释:当网站只允许https访问时,当用http访问时nginx会报出497错误码

你可能感兴趣的:(Linux运维,nginx,https,http)