nginx的location匹配规则如下:
精确匹配(=
): 如果URI与指定的location完全匹配,则使用该location。例如,location = /test
将仅匹配URI为/test
的请求。
前缀匹配(^~
): 如果URI以指定的location开始,则使用该location。该规则将优先于正则表达式匹配。例如,location ^~ /images/
将匹配以/images/
开头的URI,如/images/logo.png
。
正则表达式匹配(~
和~*
): 使用正则表达式进行匹配。~
表示区分大小写,~*
表示不区分大小写。例如,location ~ \.(jpg|jpeg|png)$
将匹配以.jpg
、.jpeg
或.png
结尾的URI。
最长前缀匹配: 如果没有精确匹配、前缀匹配或正则表达式匹配,则使用最长前缀匹配的location。例如,location /
将匹配任何URI。
注意:当多个location符合匹配条件时,将使用第一个匹配到的location。因此,要注意匹配规则的顺序。