nginx中server块的location语法规则你真的了解吗?

本文详细解释了在HTTP服务器配置中,location规则的执行顺序,特别是正则匹配与普通匹配的优先级,以及如何影响如/product/a.jpg这样的URL路径处理。规则的放置位置对正则匹配有决定性影响,但普通匹配则按路径长度而非位置判断。
摘要由CSDN通过智能技术生成
#  案例
server {
  listen 80;
  server_nmae ...;


  #规则一
  location /pro {
      ...
  }

  #规则二
   location ~ \. (gif|jpg|png)$ {
      ...
  }

  
}

#流程分析
当我们 /pro/a.jpg 时,会符合规则一进入待定,继续往下查,进入规则二发现符合.jpg ,且前面有正则进行参与且正则匹配(那意思就是优先级提高),则直接进规则二

这时我们再添加一个规则 如下

 #规则三
  location ~ /pro {
      ...
  }

这时就需要注意规则三放的位置了,如果放到规则1和2的前面,则直接规则三返回
                                                          如果放到规则2的后面,则直接规则二返回

总结

所以在符合匹配条件下,普通匹配看的不是位置的先后(选符合路径最长的那个),正则匹配看的是位置(只要满足直接返回),当所有的正则匹配都不符合下,则选取最长符合的那个普通匹配。 -- 普通命中顺序无所谓,是因为按命中的长短来确定。正则命中,顺序有所谓,因为是从前往后命中的。

相信你已经懂了,那就再额外注意一个这个吧(压轴)!

当我有以下的两个location块时 ,我的访问路径为/product/a.jpg ,结果是什么 ...

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值