nginx中的location匹配規則介紹

2022-09-15 08:00:08 字數 1329 閱讀 4714

location匹配的幾個命令的說明,如下

符號說明

~波浪線表示執行乙個正則匹配,區分大小寫

~*表示執行乙個正則匹配,不區分大小寫

^~^~表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄

=進行普通字元精確匹配

@"@" 定義乙個命名的 location,使用在內部定向時,例如 error_page, try_files

具體詳情,請參加官方文件

字首匹配

前面帶有/或者/documents/的為字首匹配。字首匹配中,長的字首匹配會優先於較短的字首。比如,同時適合//documents/的字首匹配,則優先使用/documents/

具體事例,可以參加下面**,規則2和規則3都是字首匹配。

正則匹配

前面帶有~*修飾符(不區分大小寫)或~修飾符(區分大小寫)的匹配為正則。nginx首先檢查字首匹配,記住匹配字首的最長的匹配項。最後再按照在正則匹配出現的順序搜尋,在第乙個適合的匹配項上終止,並使用相應的配置,不再對後面的正則匹配進行搜尋了。

如果沒有匹配到合適的正則匹配項的話,則就會使用前面記住的字首匹配。

精確匹配

使用=修飾符定義的匹配項為精確匹配。如果找到完全匹配的內容,搜尋將終止,直接使用精確匹配出的匹配項,不再搜尋後續的匹配項。

例如,如果/請求頻繁發生,則定義location = /將加快這些請求的處理速度,因為搜尋將在第一次比較後立即終止

例項展示

官方給出了乙個例項,這裡展示,並做簡要說明:

# 規則1[精確匹配]

location = /

# 規則2[字首匹配]

location /

# 規則3[字首匹配]

location /documents/

# 規則4[正則匹配]

location ^~ /images/

# 規則5[正則匹配]

location ~* \.(gif|jpg|jpeg)$

另外,推薦大家去參考nginx location 正則這裡對規則做了非常詳細的說明。

alias是乙個目錄別名的定義,root則是最上層目錄的定義。

還有乙個重要的區別是alias後面必須要用/結束,否則會找不到檔案的,root則可有可無。

nginx中的location匹配規則

概述 1.location在nginx配置檔案中的作用是根據使用者請求的uri來執行不同的應用。2.uri的定義 標識 定位任何資源的字串 協議 網域名稱 目錄a 目錄b 檔案c 一 location寫法 二 符號說明 開頭表示精確匹配 如 a 中只匹配根目錄結尾的請求,後面不能帶任何字串.開頭表示...

nginx中的location匹配規則

1 如果location裡面有正規表示式,那麼proxy pass後面只能是http ip port這種模式,不能是http ip port path這種路徑 2 location的路徑最好以斜槓結尾 3 proxy pass如果是http ip port path這種模式,那麼最好以斜槓結尾 1 ...

對nginx中location的認識

關於一些對location認識的誤區 1.location的匹配順序是 先匹配正則,在匹配普通 location的匹配順序其實是 先匹配普通,在匹配正則 造成誤解的原因是 正則匹配會覆蓋普通匹配 2.location的執行邏輯跟location的編輯順序無關 a.普通location 的匹配規則是 ...