以下是自己总结的nginx location匹配顺序,在第2和第3的顺序上和官网文档相左,有时间再仔细研究下
1、首先是精确匹配,用 = 表示,例如:
location = /test { ... }
2、其次是前缀匹配 ,用^~表示,例如:
location ^~ /test { ... }
注意:若有多个前缀字符串可以匹配,将选择具有最长匹配前缀的位置,并使用其配置
3、再次是正则匹配,用 ~或~*分别表示区分大小写和不区分大小写的正则匹配,例如:
location ~* /test { ... }
注意:正则表达式的搜索在第一个匹配项上终止,并使用其配置
4、再次匹配不带任何修饰的前缀匹配,例如:
location /test { ... }
5、最后是交给 / 通用匹配,例如:
location / { ... }