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。因此,要注意匹配規則的順序。