location优先级说明

2018-04-19  本文已影响0人  yjwlyy

location和配置跟location的顺序没有太大关系。跟location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。
以下是按优先级排列说明:
第一优先级:等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。
第二优先级:^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
第三优先级:正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。
第四优先级:常规字符串匹配类型。按前缀匹配。

示例

location / {}
前缀模式,匹配所有uri,最短匹配
所以,这个location为兜底location。即当其他所有location都不匹配时,命中这个location。
location = / {
    [ 配置 A ]
}

location / {
    [ 配置 B ]
}

location /documents/ {
    [ 配置 C ]
}

location ^~ /images/ {
    [ 配置 D ]
}

location ~* \.(gif|jpg|jpeg)$ {
    [ 配置 E ]
}

uri:“/”
精确匹配:配置 A
uri:“/index.html”
兜底匹配:配置 B
uri:“/documents/document.html”
最长location匹配:配置 C
uri:“/images/1.gif”
非正则匹配:配置 D
uri:“/documents/1.jpg”
正则匹配:配置 E

上一篇 下一篇

猜你喜欢

热点阅读