nginx location匹配优先级_Nginx配置文件中location的优先级答疑(2)

上一篇中,我们讲了nginx配置文件中location的优先级及相关知识点。

不同类型的表达式区分如下:

  • 等号类型 ( = ) 的优先级最高。一旦匹配成功,则不再查找其他匹配项。
  • 然后是( ^~ )类型表达式。一旦匹配成功,则不再查找其他匹配项。
  • 正则表达式类型( ~ ~* )的优先级次之。如果有多个location的正则能匹配的话, 则优先使用正则表达式最长的那个。
  • 最后是常规字符串匹配类型,则按照前缀来匹配。
  • 当然也可以说最后是根 ( / ),因为根始终是最后匹配的。

现在接上一篇的内容,以案例来分析location优先级的问题:

  1. 下面2个配置同时存在时
location = / {[ configuration A ]}location / {[ configuration B ]}

此时A生效,因为 =/ 优先级高于 /

2. 下面3个配置同时存在时

location /documents/ {[ configuration C ]}location ~ /documents/ {[configuration CB]}location ~ /documents/abc {[ configuration CC ]}

当访问的url为/documents/abc/1.html,此时CC生效,优先级顺序为CC > CB > C ,因为包含的优先级高于普通路径,而包含中的精确路径更高(前提是路径精确匹配)。

3. 下面两个配置同时存在时

location ~* .(gif|jpg|jpeg)$ {[ configuration E ]}location ~ /p_w_picpaths/abc/ {[ configuration H ]}

当访问的链接为/p_w_picpaths/abc/123.jpg时,E生效。因为上面的规则更加精确。

74c63f45dd7590e32b1cfd4f4196dc40.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值