Nginx location配置规则

location配置分两种:
(1)普通location配置

(2)正则表达式location配置


例子:

#普通location例子1
location / {
}
#普通location例子2
location /static/ {
}
#普通location例子3
location ^~ /video {
}
#普通location例子4
location = / {
}
#正则表达式location
location ~* \.(gif|jpg|jpeg)${

}


如上看到,正则表达式location就是使用了正则表达式语法的location。

普通location就是没有使用正则表达式的 location,其匹配规则如下:

a. 普通location没有顺序关系,配置在前或在后都不会影响匹配结果,如果有多条普通location,则以最大前缀作为匹配结果e.g., http://qunar.com/static/  这个url会匹配上面的例子2
b. 正则表达式location有顺序关系,如果有多条符合条件的正则表达式的location,则只匹配第一个符合条件的location

c. 先匹配普通location,再匹配正则表达式location

所以,一条url的location定位,最多会有两次location匹配:先是找到最大前缀的location,接着找最靠前符合条件的正则表达式location,如果没找到符合条件的正则表达式location,则直接采用普通location的规则。为什么说最多会有两次location匹配,因为在匹配普通location时可以指定,匹配完了普通location,接下来就不要再匹配正则表达式location了,例子3和例子4就是特殊的普通location配置,通过在 “=” 、“~”指定,如果当前普通location匹配成功,则接下来采用该location,而不必继续匹配正则表达式location。“=”、“~”两者的区别在于,前者是严格匹配,也就是url路径中必须每个字符都符合 = 号后的路径,而后者并不是严格匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值