匹配方式
~ 表示执行一个正则匹配,区分大小写
~* 表示执行一个正则匹配,不区分大小写
^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。
= 进行普通字符精确匹配。也就是完全匹配。
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
!~区分大小写不匹配正则
!~*不区分大小写不匹配的正则
匹配规则
1、nginx先按字符串前缀的形式查找匹配的location,选中并记住匹配度最长的那个location。
2、如果被选中的location使用了“=”修饰符,则将当前选中结果作为最终结果,停止继续查找;
3、如果被选中的location使用了“^~”修饰符,则将当前选中结果作为最终结果,停止继续查找;
4、如果被选中的location未使用“=”或“^~”修饰符,则继续查找,执行步骤5;
5、然后,再按照正则的定义顺序查找匹配的location,选中第一个符合要求的正则location。