You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx中location内include配置作用范围及nginx -T用法咨询

Nginx配置拆分后的location生效范围与匹配顺序问题

一、location ~ \.php$ {return 404}的生效范围

这个规则仅对{host}/b.php这类请求生效,具体原因:

  • 从nginx -T的输出能明确看到,c.conf是被include在location b块内部的,所以这个PHP规则属于location b的子location,并非全局生效的规则。
  • 请求匹配逻辑:只有当请求先匹配到外层的location b(比如/b.php会匹配前缀/b),才会进入该块内部的子规则匹配,触发404返回。
  • 对于{host}/a.php这类请求,会优先匹配全局的location a(前缀匹配/a),不会进入location b的子规则,因此不会返回404。

二、能否通过nginx -T查看location匹配顺序?

nginx -T只能展示合并后的完整配置内容,无法直接给出Nginx实际匹配location的顺序。

Nginx的location匹配有固定优先级逻辑,需结合配置内容自行判断:

  • 优先匹配=开头的精确匹配规则
  • 其次匹配^~开头的前缀匹配(匹配成功后不再检查正则规则)
  • 接着按配置文件中出现的顺序,匹配~/~*开头的正则规则
  • 最后匹配普通前缀匹配规则
  • 若所有规则都不匹配,使用默认的/ location(若存在)

内容的提问来源于stack exchange,提问作者LokiTheCreator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:40:01