[转帖]日更第7日: (翻)nginx调优之使用return代替rewrite做重定向

nginx,使用,return,代替,rewrite,重定向 · 浏览次数 : 0

小编点评

**NGINX重写URL的能力** NGINX中重写URL是一个强大的功能,允许您使用各种条件重写请求的URL。使用`return`与`rewrite`指令可以实现相同的结果,但`return`比`rewrite`更简单快捷,因为它不需要执行正则计算。 **使用`return`指令** `return`指令可以立即停止请求处理并返回给客户端的代码。当您使用`return`时,`NGINX`不会计算RegEx,这可以加速请求处理。 **示例** ```nginx # 使用return指令重写URL server { location /old-path { return 301 $request_uri; } location /new-path { # 访问新的URL } } ``` **使用`rewrite`指令** `rewrite`指令可以使用正则表达式匹配请求URL,并将其重写到新的URL。但是,使用`rewrite`时,正则表达式会产生额外的系统开销。 **结论** NGINX重写URL是一个非常强大的功能,可以用于多种用途。`return`指令比`rewrite`更简单快捷,但当您需要只重写部分URL时,`rewrite`可能更适合。

正文

  • https://www.jianshu.com/p/26dc6c2b5f43

     

解释说明

  1. NGINX中重写url的能力是一个非常强大和重要的特性,从技术角度讲returnrewrite均能实现。
    但使用return相对rewrite更简单和更快,因为计算RegEx会产生额外的系统开销。
  2. Return指令可以立即停止处理请求(它直接停止执行)并将指定的代码返回给客户端,省略了正则计算的流程。
  3. 如果你需要用regex验证URL或者需要获取原始URL中的元素(显然不在相应的NGINX变量中),那么你应该使用rewrite

使用样例

  • 不建议实现方式
server {

...

location / {

    try_files $uri $uri/ =404;

    rewrite ^/(.*)$ https://example.com/$1 permanent;

}

...

}
  • 建议实现方式
server {

  ...

  location / {

    try_files $uri $uri/ =404;

    return 301 https://example.com$request_uri;

  }

  ...

}

与[转帖]日更第7日: (翻)nginx调优之使用return代替rewrite做重定向相似的内容:

[转帖]日更第7日: (翻)nginx调优之使用return代替rewrite做重定向

https://www.jianshu.com/p/26dc6c2b5f43 解释说明 NGINX中重写url的能力是一个非常强大和重要的特性,从技术角度讲return与rewrite均能实现。但使用return相对rewrite更简单和更快,因为计算RegEx会产生额外的系统开销。 Return指

[转帖]比快更快的 ELK 8 安装使用指南-Elasticsearch,Kibana,Logstash

https://juejin.cn/post/7133907643386560519 携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情 Elastic 8 的新特性 Elastic 8.0 版号称 比快更快 ,其新特性可参考 Elastic 官方博客:

[转帖]openEuler 22.03 LTS 版本发布,已有 8 家伙伴计划推出商业发行版

https://zhuanlan.zhihu.com/p/500525072 4 月 13 日-15 日,欧拉开发者大会(openEuler Developer Day 2022)在线上和线下同步举行。大会以“一起创未来,欧拉更精彩”为主题,旨在推动 openEuler 在服务器、云计算、边缘计算和

[转帖]macOS Monterey 12.1 (21C52) 正式版 ISO、IPSW、PKG 下载

https://sysin.org/blog/macOS-Monterey-12-1/ 2021 年 6 月 8 日,在今天凌晨举行的 Apple WWDC 2021 大会上,苹果公司正式发布了 macOS Monterey。新版操作系统新功能及特性如下: 照片、消息和更多升级共享 iOS 和 iP

[转帖]甲骨文推出下一代Exadata X9M平台

https://news.e-works.net.cn/category8/news94190.htm 北京, 2021年9月29日 — 甲骨文宣布推出运行Oracle数据库更快、价格更低的Oracle Exadata X9M平台。新推出的Exadata X9M包括Oracle Exadata数据库

[转帖]nginx按日分割日志

https://www.cnblogs.com/leffss/p/7832123.html #!/bin/bash #按日切割nginx日志并压缩,加入crontab每天0:00切割 #作者:fafu_li #时间:2015.08.15 source /etc/profile #加载系统环境变量 s

[转帖]等待事件 enq:TX - row lock contention分析与解决

6月30日,数据库发生了大量锁表。大概持续1小时,并且越锁越多。后来通过业务人员停掉程序,并kill掉会话后解决。 几天后再EM上查看CPU占用: CPU发生了明显等待。 主要是由于enq:TX - row lock contention等待事件造成。 等待事件—enq:TX - row lock

[转帖]编译安装goofys挂载Scaleway免费75G对象存储

日常•2022年5月29日 goofys编译 goofys是一个开源的使用Go编写的s3存储桶挂载工具,主打高性能。由于使用Go编写,没有用到什么特别的依赖,自己编译也很容易。截止2022.5.27,官方github仓库貌似一直有提交,但是提供的预编译安装包貌似只到2020年4月,而且只有x86版本

[转帖]宋宝华:用eBPF/bcc分析系统性能的一个简单案例

原创 宋宝华 Linux阅码场 3月8日 bcc是eBPF的一种前端,当然这个前端特别地简单好用。可以直接在python里面嵌入通过C语言写的BPF程序,并帮忙产生BPF bytecode和load进入kernel挂载kprobe、tracepoints等上面执行。之后,还可以从python取出来C

[转帖]英特尔正式发布第四代Xeon至强可扩展处理器,Intel7工艺;i9-13900KS首秀,开箱即用六个G

https://new.qq.com/rain/a/20230111A06IFM00 11 日消息,英特尔今日正式发布了第四代至强可扩展处理器(代号 Sapphire Rapids)和至强 CPU Max 系列(代号 Sapphire Rapids HBM),以及英特尔数据中心 GPU Max 系列