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.