End.
原
nginx配置使访问http自动跳转https站点(使用路由重写)
今天小编遇到一个小问题,😳,便是申请了CA认证之后,网站配置了https访问之后,发现 当用户在浏览器直接输入域名,例如:yxcca.cn 这时候,浏览器会自动将域名变为http去请求服务器,但是我想要的结果是直接变成https请求
以下将介绍nginx的配置方法哟~😄
方法其实挺简单的,一句话就是
配置80端口重写指向到443端口即可
配置文件如下:
server {
listen 80;
server_name www.test.cn;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443;
server_name www.test.cn;
ssl on;
ssl_certificate /etc/nginx/certificate/www/1_www.test.cn_bundle.crt;
ssl_certificate_key /etc/nginx/certificate/www/2_www.test.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
root /usr/share/nginx/html/blog/test/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
root /usr/share/nginx/html/blog/test/public;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
fastcgi_param HTTPS on;
}
}
参考上面修改nginx.conf 配置文件,80端口会自动转给443端口,这样就强制使用SSL证书加密了。访问http的时候会自动跳转到https上面。
核心配置就是 rewrite 重定向到https
修改配置文件后,重启nginx 好啦,到这,可以开开心心地浏览器输入域名,便可以直接访问到https请求啦~😄
Nginx更多配置可以阅读 往期 《nginx发布配置https协议,并发布PHP站点》
The End.
End.