首先打开nginx的设定
$ sudo vim /etc/nginx/nginx.conf
添加如下设置,监听80端口并把请求重定向到https.
server {
listen 80 default;
server_name www.example.com;
return 301 https://$host$request_uri;
}
然后重启nginx
$ sudo service nginx restart
这时还有一个问题,我们发现https请求也被重定向到https里了,就这样一直循环然后报错。
查了很多资料,最后的解决办法是加一个判断,当请求不是https的时候,才进行重定向。
if ( $scheme != "https" ) {
return 301 https://$host$request_uri;
}
这个解决方法是我在stackoverflow上看到的。贴上原地址https://stackoverflow.com/questions/46765270/redirect-http-to-https-from-nginx-is-not-working