引言 {#引言}
本文介绍nginx从80端口重定向到443端口的实现方法,也就是实现http访问自动跳转到https的功能。
修改nginx.conf配置文件 {#修改nginx-conf配置文件}
按照如下格式修改nginx.conf
配置文件(只需要增加第6行代码rewrite ^(.*)$ https://${server_name}$1 permanent;
即可),80端口会自动转发给443端口,这样就强制使用SSL证书进行加密了。也就实现了访问http的时候自动跳转到https的功能。
|-----------------------|------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7
| server { listen 80; server_name zsyyblog.com; #核心代码 rewrite ^(.*)$ https://${server_name}$1 permanent; }
|
备注:
${server_name}
可以换成$host
修改配置后重启nginx:service nginx reload
或者 systemctl reload nginx.service
或者 ./nginx -s reload
如果还没有配置443端口的监听,请参考下面的配置:
|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| server { listen 443; server_name zsyyblog.com; #开启ssl证书认证 ssl on; access_log /data/nginx/zsyyblog.access.log main; keepalive_timeout 60; #证书路径,根据实际情况改写 ssl_certificate /data/nginx/cert/zsyyblog.com.pem; ssl_certificate_key /data/nginx/cert/zsyyblog.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击 server_tokens off; }
|
重定向参考配置 {#重定向参考配置}
|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| server { listen 80; server_name zsyyblog.com; rewrite ^(.*)$ https://${server_name}$1 permanent; } server { listen 80; server_name www.zsyyblog.com; rewrite ^(.*)$ https://zsyyblog.com$1 permanent; } server { listen 443; server_name www.zsyyblog.com; rewrite ^(.*)$ https://zsyyblog.com$1 permanent; }
|
通过上面的配置实现将请求全部跳转至一个域名地址:https://zsyyblog.com