Nginx location规则优先级测试

location [=|~|~*|^~|@] /uri/ { … }

〖=〗表示精确匹配,如果找到,立即停止搜索并立即处理此请求。

〖~ 〗 表示区分大小写匹配

〖~*〗 表示不区分大小写匹配

〖^~ 〗 表示只匹配字符串,不查询正则表达式。

〖@〗 指定一个命名的location,一般只用于内部重定向请求。

先来测试下区分大小写和不区分大小写的优先级

Nginx location规则优先级测试

测试结果为

------------501

将顺序反下,将~*放前面

Nginx location规则优先级测试

结果

----------501

----------501

结论: 去分和不区分大小写的正则匹配优先级相同,以先后顺序来决定匹配哪一个.

再来比较=与~的优先级

Nginx location规则优先级测试

结果

-------------502

结论: =的优先级比~高

再来比较下 ^~ 与 ~的优先级

Nginx location规则优先级测试

结果

  --------------504

结论

^~的优先级比~高

再测试 ^~ 与 = 的优先级

Nginx location规则优先级测试

结果

  --------------504

结论       =的优先级比 ^~高

再来测试^~同级之间的优先级

Nginx location规则优先级测试

结果

  --------------504

结论  ^~优先匹配的是从根开始的匹配

再来看什么都不加与~的优先级比较

Nginx location规则优先级测试

结果

  --------------504

结论       不加的优先级比~低

优先级排序为

不加

~与*~正则匹配的优先级按先后次序来决定的

^~同级之间的匹配是按照根目录顺序来的

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/697b332956633f1d17b0b7a780790e64.html