Nginx几种常见实现301重定向方法上的区别

Crq
Crq
管理员
1446
文章
0
粉丝
Linux教程评论33字数 339阅读1分7秒阅读模式

Nginx几种常见实现301重定向方法上的区别

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

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

rewrite ^/(.*)$ https://www.hi-linux.com/$1;

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

rewrite ^ https://www.hi-linux.com$request_uri? permanent;

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

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

return 301 https://www.hi-linux.com$request_uri;

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

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

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2024年11月17日 08:34:54
  • 转载请注明:https://www.cncrq.com/11715.html
如何在HTTP头中隐藏PHP版本号 Linux教程

如何在HTTP头中隐藏PHP版本号

出于服务器安全原因(虽然不是主要的要担心的威胁),建议你禁用或隐藏此信息,避免那些针对你的服务器的攻击者知道你是否运行了 PHP。在本文中,我们将解释如何隐藏或关闭服务器 HTTP...
安全快速更改MySQL数据库名称 Linux教程

安全快速更改MySQL数据库名称

MySQL似乎没有更改数据库名称的语句(也许是我不知道),如果你有数据库服务器的管理权限,可以直接更改一下目录名即可,但如果没有权限,可以通过更改表名达到修改数据库名的目的。下面是...
巧用Grep 命令 Linux教程

巧用Grep 命令

所有的类linux系统都会提供一个名为grep(global regular expression print,全局正则表达式输出)的搜索工具。grep命令在对一个或多个文件的内容...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证