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 的匹配規則是 ...