nginx location note

All remaining directives with conventional strings, longest match first. If this match used the ^~ prefix, searching stops.

If #3 yielded a match, that result is used. Else the match from #2 is used.

所有剩下的常规字符串,最长的匹配。如果这个匹配使用^〜前缀,搜索停止。

如果第3条规则产生匹配的话,结果被使用。否则,如同从第2条规则被使用。

---------- 翻译成人话 ----------

对所有的location匹配一遍, 过滤出合适的location之后

如果找到=匹配, 就不再找了, 执行

上面的没有, 继续找
如果找到^~匹配, 就不再找了, 执行

上面的没有, 继续找
如果找到正则匹配, 按 物理顺序, 定优先

上面的没有, 继续找
如果找到普通匹配, 按 物理顺序 定优先

备注: 同样的正则, 或同样的普通匹配, 按物理顺序, 不按最大匹配
如:
locaiton ~ /a/b {return 666}
locaiton ~ /a/b/c {return 777}

请求
/


语法匹配规则
普通匹配(遵循最大前缀匹配规则,优先度比正则低)
=精确(严格)匹配, 优先度最高,后续不再匹配正则
^~非正则匹配(依然遵循最大前缀匹配规则),后续不再匹配正则
~表示区分大小写的正则匹配
~*表示不区分大小写的正则匹配
/通用匹配,任何请求都会匹配到(本质上等同于语法空)

翻译成人话

第一优先级
=, ^~

第二优先级
正则, 同样正则下, 最大匹配和物理顺序

剩下
普通, 最大匹配和物理顺序

##### location 匹配测试 #####  
普通location, 这个(空)不能与 ^~一样, 因为同属普通匹配  
#location  /a/c {  
    return 555;  }  
#正则location  
location ~ /a/c {  
    return 999;  
}  
#正则location  
location ~* /a/c {  
    return 888;  
}  
#普通location, 第二优先级, 与 (空)匹配 不能一样, 因为同属普通匹配  
#location ^~ /a/c {  
#    return 777;  
#}  
#精确location, 最大优先级, 可以与普通匹配一样  
location = /a/c {  
    return 666;  
}  

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值