nginx 路徑匹配

2021-10-24 18:38:25 字數 1931 閱讀 9105

location

精準匹配(=):只匹配指定的請求路徑

location = /aaa
字首匹配(^ ~):

不使用正規表示式,匹配指定字首開頭的請求路徑

location ^~ /aaa
正則匹配(~):

匹配符合正規表示式的請求路徑,

區分大小寫

location ~ \.html$ 

location ~ ^/aaa/.*\.html$

正則匹配(~*):

匹配符合正規表示式的請求路徑,

不區分大小寫

location ~* \.html$
最大字首匹配(無符號):

使用字首匹配度最大的location

#location 1

location /aaa

#location 2

location /aaa/bbb

/aaa/c ==> 匹配location 1

/aaa/bbb/c ==> 匹配location 2

匹配優先順序:

= ==>  

^~==> 

~/ ~* 

==>

無符號匹配,

優先順序逐次降低

說明:

當有多個正則匹配,使用最先匹配的location

注意事項

如果最大字首相同,^~、無符號不能同時使用,會報錯

(字首不同,可同時使用)

location ^~ /aaa 

location /aaa

報錯資訊:

[root@centos html]# docker logs nginx

2020/10/15 02:08:43 [emerg] 1#1: duplicate location "/aaa" in /etc/nginx/conf.d/default.conf:28

nginx: [emerg] duplicate location "/aaa" in /etc/nginx/conf.d/default.conf:28

優先順序比較

^~

==>

~

location ^~ /aaa 

location ~ /aaa

curl localhost:8080/aaa

[root@centos html]# curl localhost:8080/aaa

location ^~ /aaa # ^~ 優先於 ~

~

==> 

無符號

location ~ /aaa 

location /aaa

curl localhost:8080/aaa

[root@centos html]# curl localhost:8080/aaa

location ~ /aaa # ~ 優先於 無符號

Nginx 路徑匹配規則

location uri 首先匹配 其次匹配 其次是按檔案中順序的正則匹配,最後是交給 通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。匹配mp verify txt檔案,中間任意字元,並在 usr share nginx file目錄中尋找對應檔案 靜態檔案工程配置 location...

Nginx 路徑匹配規則,萬用字元

nginx路徑匹配符號 表示精確匹配 表示uri以某個常規字串開頭,大多情況下用來匹配url路徑,nginx不對url做編碼,因此請求為 static 20 aa,可以被規則 static aa匹配到 注意是空格 正則匹配 區分大小寫 正則匹配 不區分大小寫 和 分別為區分大小寫不匹配及不區分大小寫...

Nginx 實踐 location 路徑匹配

nginx 反向 路徑對映的過程是什麼?如何配置路徑對映規則?2.1 匹配規則 location 路徑正則匹配 符號說明 正則匹配,區分大小寫 正則匹配,不區分大小寫 普通字元匹配,如果該選項匹配,則,只匹配改選項,不再向下匹配其他選項 普通字元匹配,精確匹配 定義乙個命名的 location,用於...