Nginx(六) Nginx location 匹配顺序及优先级深究(亲测有效)
最佳答案 问答题库1018位专家为你答疑解惑
Nginx配置文件详解请参考另一篇文章 Nginx(三) 配置文件详解
本篇文章主要是探讨Nginx location的匹配顺序,依照惯例,我们还是先贴结论再看测试结果。
匹配location的过程,其实可以理解成一个在众多选项中寻找最佳答案的过程。当然,“=”代表的就是正确答案,而其它情况只是相对于正确答案的最佳选项。下面我们来看具体的匹配顺序:
1.Nginx按照location配置顺序依次进行匹配;
2.如果请求URI部分前缀或全部与location uri匹配,先记录下来(如有匹配长度更长的则覆盖记录),继续向下匹配,再看看是否还有最佳答案(备胎,最后再考虑你)
3.如果与"="选项精确匹配,则立刻停止匹配(高富帅,你就是我心目中的白马王子);
4.如果跟"^~"选项匹配成功,还要继续完成所有匹配(最长匹配策略),直到找到与"^~"匹配长度最长的那个选项后再停止匹配(如果实在找不到其它的,就只能拿这个凑合了)(虽然都不帅,但我要找最有钱的那位);
5.如果跟"~"或"~*"任意选项匹配成功,则立刻停止(好不容易遇到一个爆发户,不拖泥带水,立刻下手);
6.完成所有匹配。前面5步中,每一步但凡匹配成功都会覆盖结果记录。如果匹配过程能进入第6步,说明请求URI前缀与location uri匹配是最好的结果了,最终的结果记录也就是最佳答案(在备胎中选择最佳备胎,残忍,现实)。
具体测试过程及结果,请移步另一篇文章
最后,我们根据上面的匹配顺序对各种匹配规则的作用优先级做个排序。
优先级排序匹配规则修饰符1精确匹配=2指定字符串开头^~3正则匹配~、~* 、!~、!~*、...$)4通用匹配/:下面,我们开始测试。
测试1:
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"Nginx(六) Nginx location 匹配顺序及优先级深究(亲测有效)":http://eshow365.cn/6-38787-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!