首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何控制NGINX 'Location‘指令的匹配顺序?

如何控制NGINX 'Location‘指令的匹配顺序?
EN

Stack Overflow用户
提问于 2011-12-09 04:58:59
回答 1查看 19.7K关注 0票数 18

我正在尝试优化我的“location”指令,但是找不到一种好的方法来确定是否尝试了特定的位置匹配。在location块中使用echo在这里没有帮助。

The NGINX ngx_http_core_module documentation有点让人困惑。

要使用正则表达式,必须使用前缀:

区分大小写的matching

  • ~*
  1. ~不区分大小写的matching

匹配的执行方式:

与查询完全匹配的带有=前缀的

  1. 指令。如果找到,搜索将停止。

使用常规字符串

  1. 所有剩余的指令。如果此匹配使用了^~前缀,则按照配置文件中定义的顺序搜索stops.
  2. Regular表达式。
  3. 如果#3生成匹配,则使用该结果。否则,将使用#2中的匹配项。

这里的2号表示“传统字符串”,但随后又表示它可以与^~前缀一起使用。~不是暗示了一个RegExp吗?如果不是,它如何确定什么是不是RegExp?

具体地说,我想要以下内容:

  1. 直接提供文字/assets之外的任何内容。通过fast停止SEARCH.
  2. Serve任何与\.php$|/$匹配的内容-CGI通过文字/

直接停止所有其他内容

这样,仅对从资源外部提供的非动态文件进行/匹配尝试。

我有:

代码语言:javascript
复制
location ^~ /assets {}      # search-terminating literal? or regex?
location ~ \.php$|/$ {}
location / {}               # is this match always attempted?

从文档中看,实际的顺序似乎是1-3-2,始终运行文字/匹配。是的,这种优化不会对真正的性能产生任何影响,但我只是想澄清一些模棱两可的地方。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8437613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档