0%

nginx 强制转https

有了 SSL 证书,就要好好的利用。

nginx 站点配置中原来监听的 80 端口拎出来,用来重定向到 https

注释掉原先的 80 端口的监听

1
2
3
4
5
6
7
8
9
10
server {
# listen 80 default_server;
# listen [::]:80 default_server;

listen 443 ssl ;
listen [::]:443 ssl ipv6only=on;

server_name *.example.top;
// 其他配置略
}

另起一个 80 端口监听用于重定向

1
2
3
4
5
6
7
 server{
listen 80 default_server;
listen [::]:80 ipv6only=on;

server_name *.example.top;
return 301 https://$server_name$request_uri;
}

检测配置,重新加载

1
2
nginx -t
nginx -s reload

多个站点的话就弄多个监听 80 端口的 server

1
2
3
4
5
6
7
8
9
10
11
12
13
 server{
listen 80 default_server;
listen [::]:80 ipv6only=on;
server_name www.example.top example.top *.example.top;
return 301 https://$server_name$request_uri;
}

server{
listen 80 ;
listen [::]:80 ;
server_name www.example.com example.com *.example.com;
return 301 https://$server_name$request_uri;
}