nginx中return和rewrite指令同时存在先执行顺序哪个

 更新时间:2024年09月16日 09:38:43   作者:黎明强森  
在Nginx配置中,当return和rewrite指令同时存在,其执行顺序取决于配置的具体场景,这篇文章主要介绍了nginx中return和rewrite指令同时存在先执行顺序哪个,文中通过代码介绍的非常详细,需要的朋友可以参考下

前文

如果return指令rewrite指令同时存在先执行哪个呢?

场景示例

模拟数据

server {
    location /images {
        rewrite /images/(.*)$ /pic/$1 last;  
        return 200 "return 200 in /images";
    }
    
    location /pic {
         rewrite /pic/(.*) /photos/$1;
         return 200 "return 200 in /pic";
    }
    
    location /photos {
        return 200 "return 200 in /photos";
        
    }
}

分别在/images/pic/photos的location段增加return 返回200状态码并输出字符串

流程

  • 访问xxx.com/images/index.html ,会进入/images的location段中
  • /images中,进行rewrite指令,将images/index.html重写到/pic/的index.html,并且有last 值
  • 遇到last值,会重新触发请求。在server段/pic的location段。
  • 匹配到location的/pic后 ,又重写,将/pic的index.html重定向到/photos目录下的index.html。(注意/pic段没有加last值,意味着流程顺序执行!
  • 没有加flag标签。所以/pic段中依然执行下面的命令,会走retrun 200 "return 200 in /pic" 之后就中断。

场景2

如果在/pic段中增加flag的break,会执行什么?

当遇到break,会重写找/photos段,不会执行return 200 in /pic

注意事项

如果当你直接访问xxx.com/photos/index.html, 但是又有return指令, 会优先执行return指令 , 并不会返回photos/index.html的页面,直接返回return结果给你。

如果没有return指令才会找目录对应下的有没有index.html文件。

总结 

到此这篇关于nginx中return和rewrite指令同时存在先执行顺序哪个的文章就介绍到这了,更多相关nginx中return和rewrite指令执行顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx如何获取用户真实ip

    nginx如何获取用户真实ip

    这篇文章主要介绍了nginx如何获取用户真实ip问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Nginx虚拟主机的六种配置(最全)

    Nginx虚拟主机的六种配置(最全)

    利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,本文主要介绍了Nginx虚拟主机的六种配置,具有一定的参考价值,感兴趣的可以了解下
    2023-08-08
  • Nginx轻松解决跨域问题的过程详解

    Nginx轻松解决跨域问题的过程详解

    当你遇到跨域问题,不要立刻就选择复制去尝试,请详细看完这篇文章再处理 ,本文给大家详细介绍了Nginx如何轻松搞定跨域问题,文中通过代码示例额和图文介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • nginx中的路径匹配location规则详解

    nginx中的路径匹配location规则详解

    Nginx的匹配规则用location指令来实现,Nginx 的location指令用于匹配请求的 URI(请求路径),并根据匹配结果执行特定的处理指令,这篇文章主要介绍了nginx中的路径匹配规则详解(location规则),需要的朋友可以参考下
    2025-04-04
  • 在Nginx中阻止来自特定的IP地址访问的操作指南

    在Nginx中阻止来自特定的IP地址访问的操作指南

    在网络安全方面,有时你可能需要限制特定国家或地区的访问权限,本文将介绍如何使用 Nginx 配置文件来阻止来自特定国家或地区的 IP 地址访问你的网站,需要的朋友可以参考下
    2024-07-07
  • Nginx访问日志access_log配置及信息详解(推荐)

    Nginx访问日志access_log配置及信息详解(推荐)

    当你设置日志级别成debug,如果你在调试一个在线的高流量网站的话,你的错误日志可能会记录每个请求的很多消息,这样会变得毫无意义,下面小编给大家介绍Nginx访问日志access_log配置及信息详解,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • Nginx 504 Gateway Time-out的两种最新解决方案

    Nginx 504 Gateway Time-out的两种最新解决方案

    大家在访问网站的时候通常会遇到502错误、404错误等,很少会遇到504错误,但是在我们去访问大流量或者内容数据量较多的网站时,打开网页偶尔就会出现504 gateway time-out,这篇文章主要给大家介绍了关于Nginx 504 Gateway Time-out的两种解决方案,需要的朋友可以参考下
    2022-08-08
  • 解读nginx中limit配置参数

    解读nginx中limit配置参数

    这篇文章主要介绍了nginx中limit配置参数的详细作用,希望我们整理的内容能帮助到你,一起学习下吧。
    2018-01-01
  • Nginx限制带宽配置示例

    Nginx限制带宽配置示例

    这篇文章主要介绍了Nginx限制带宽配置示例,本文网罗了3个方法,希望可以帮到大家,需要的朋友可以参考下
    2014-09-09
  • Nginx重新编译添加模块的方法

    Nginx重新编译添加模块的方法

    这篇文章主要介绍了Nginx重新编译添加模块的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论