Nginx 實踐 location 路徑匹配

2022-06-09 20:48:11 字數 1461 閱讀 5104

nginx 反向**,路徑對映的過程是什麼?如何配置路徑對映規則?

2.1 匹配規則:

location 路徑正則匹配:   

符號說明

~

正則匹配,區分大小寫

~*

正則匹配,不區分大小寫

^~

普通字元匹配,如果該選項匹配,則,只匹配改選項,不再向下匹配其他選項

=

普通字元匹配,精確匹配

@

定義乙個命名的 location,用於內部定向,例如 error_page,try_files

2.2 匹配優先順序:

路徑匹配,優先順序:(跟 location 的書寫順序關係不大)

精確匹配

=字首的指令嚴格匹配這個查詢。

如果找到,停止搜尋。

普通字元匹配

所有剩下的常規字串,最長的匹配。

如果這個匹配使用^〜字首,搜尋停止。

正則匹配

正規表示式,在配置檔案中定義的順序,匹配到乙個結果,搜尋停止;

預設匹配

如果第3條規則產生匹配的話,結果被使用。

否則,如同從第2條規則被使用。

通過乙個例項,簡單說明一下匹配優先順序:

按照上面的location寫法,以下的匹配示例成立:

/-> config a:

精確完全匹配,即使/index.html也匹配不了

/downloads/download.html-> config b:

匹配b以後,往下沒有任何匹配,採用b

/images/1.gif-> configuration d:

匹配到f,往下匹配到d,停止往下

/images/abc/def-> config d:

最長匹配到g,往下匹配d,停止往下你可以看到 任何以/images/開頭的都會匹配到d並停止,fg寫在這裡是沒有任何意義的,h是永遠輪不到的,這裡只是為了說明匹配順序

/documents/document.html-> config c:

匹配到c,往下沒有任何匹配,採用c

匹配到c,往下正則匹配到e

最長匹配到c,往下正則順序匹配到cc,不會往下到e

Nginx配置基礎 location

location表示式型別 表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配。使用字首匹配。如果匹配成功,則不再匹配其他location。進行普通字元精確匹配。也就是完全匹配。常規字串匹配。按字首匹配。它定義乙個命名的 location,使用在內部定向時,例如 ...

nginx配置location總結

上 多的不說了,配了很多,終於起效了。對nginx 來說,實現的方法很簡單,只要在location段中,使用 expires 就可以了 格式expires 30s 表示把資料快取30秒 expires 30m 表示把資料快取30分 expires 10h 表示把資料快取10小時 expires 1d...

nginx的location配置詳解

語法規則 location uri 開頭表示精確匹配 開頭表示uri以某個常規字串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為 static 20 aa,可以被規則 static aa匹配到 注意是空格 開頭表示區分大小寫的正則匹配 開頭表示不區分大小寫的正則匹配 和 分...