Nginx环境强制HTTP跳转(301)到HTTPS

作者: deepwinter 分类: 建站 发布时间: 2019-04-19 15:11 点击量: 539 次阅读

推荐方式

修改Nginx配置文件,添加如下内容(域名换成自己的):

server {
    listen 80;
    server_name deepwinter.com www.deepwinter.com;
    return 301 https://www.deepwinter.com$request_uri;
}

改完记得重启Nginx哦。


其他方式

Nginx下常见的301跳转有以下三种,虽然都能达到同样的目的。但是三种写法上还是有区别的,主要的区别是在正则匹配的性能上。

第一种:
使用rewrite指令,通过正则匹配所有的URI后再去掉开头第一个/(反斜线)。

rewrite ^/(.*)$ https://www.deepwinter.com/$1;

第二种:
同样使用rewrite指令,不同的是通过$request_uri变量匹配所有的URI。

rewrite ^ https://www.deepwinter.com$request_uri? permanent;

这样写的好处是省去了去掉开头第一个反斜线的过程,正则匹配上性能更优。

第三种:
使用return指令,通过301状态码和$request_uri参数,直接告诉Nginx这是个301重定向和抓取指定URI。

return 301 https://www.deepwinter.com$request_uri;

这种方法是性能上最优的,因为rewrite指令有很多写法和规则,执行完所有正则匹配后,Nginx才会知道这是一个301永久重定向。

通过以上三种写法介绍,我们可以看出return指令在301跳转上比rewrite指令性能上更加有优势。虽然在访问量不大的情况下几种写法的性能表现上区别并不大,不过在海量访问中一个小小的优化也能在提升业务系统性能上起到不小的作用哟!


参考文章:
https://www.jb51.net/article/115450.htm

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注