Nginx 匹配規則練習

2021-09-19 22:15:10 字數 2746 閱讀 8946

nginx的匹配規則順序是

矯正: location 的匹配順序其實是「先匹配普通,再匹配正則」。我這麼說,大家一定會反駁我,因為按「先匹配普通,再匹配正則」解釋不了大家平時習慣的按「先匹配正則,再匹配普通」的實踐經驗。這裡我只能暫時解釋下,造成這種誤解的原因是:正則匹配會覆蓋普通匹配(實際的規則,比這複雜,後面會詳細解釋)。

矯正:這句話不全對,「普通 location 」的匹配規則是「最大字首」,因此「普通 location 」的確與 location 編輯順序無關;但是「正則 location 」的匹配規則是「順序匹配,且只要匹配到第乙個就停止後面的匹配」;「普通location 」與「正則 location 」之間的匹配順序是?先匹配普通 location ,再「考慮」匹配正則 location 。注意這裡的「考慮」是「可能」的意思,也就是說匹配完「普通 location 」後,有的時候需要繼續匹配「正則 location 」,有的時候則不需要繼續匹配「正則 location 」。兩種情況下,不需要繼續匹配正則 location :( 1 )當普通 location 前面指定了「 ^~ 」,特別告訴 nginx 本條普通 location 一旦匹配上,則不需要繼續正則匹配;( 2 )當普通location 恰好嚴格匹配上,不是最大字首匹配,則不再繼續匹配正則。

server 

location ~ \.html$

}

uri 請求

http 響應

uri 請求

http 響應

uri 請求

http 響應

uri 請求

http 響應

}規則二

server         

location ~ \.html$

}

uri 請求

規則一 http 響應

規則二 http 響應

uri 請求

http 響應

nginx之location 匹配規則詳解

nginx匹配規則

nginx的location可以有以下幾個匹配 1.嚴格匹配這個查詢。如果找到,停止搜尋。2.匹配路徑的字首,如果找到,停止搜尋。3.為區分大小寫的正則匹配 4.為不區分大小寫匹配 波浪線表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配,如果該選項匹配,只匹配該...

nginx匹配規則

模式 含義location uri 表示精確匹配,只有完全匹配上才能生效 location uri 開頭對url路徑進行字首匹配,並且在正則之前。location pattern 開頭表示區分大小寫的正則匹配 location pattern 開頭表示不區分大小寫的正則匹配 location uri...

nginx 路由匹配規則

語法規則 location uri 首先匹配 精確匹配 其次匹配 非正則 其次是按檔案中順序的正則匹配,最後是交給 通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。注意 精準匹配命中時,停止location 動作,直接走 精準匹配 一般匹配 含非正則 命中時,先收集所有的普通匹配,最後...