location表示式型別
~ 表示執行乙個正則匹配,區分大小寫
~* 表示執行乙個正則匹配,不區分大小寫
^~ 表示普通字元匹配。使用字首匹配。如果匹配成功,則不再匹配其他location。
= 進行普通字元精確匹配。也就是完全匹配。
常規字串匹配。按字首匹配。
@ 它定義乙個命名的 location,使用在內部定向時,例如 error_page, try_files
location優先順序說明
nginx中location表示式的執行和配置中location的順序沒有太大關係。只與location表示式的型別有關。相同型別的表示式,字串長的會優先匹配。
以下是按優先順序排列說明:
等號型別(=)的優先順序最高。一旦匹配成功,則不再查詢其他匹配項。
^~型別表示式。一旦匹配成功,則不再查詢其他匹配項。
正規表示式型別(~ ~*)的優先順序次之。如果有多個location的正則能匹配的話,則使用正規表示式最長的那個。
常規字串匹配型別。按字首匹配。
location優先順序示例
配置項如下:
location = /
location /
location /documents/
location ^~ /images/
location ~* \.(gif|jpg|jpeg)$
請求匹配示例
/ -> configuration a
/index.html -> configuration b
/documents/document.html -> configuration c
/images/1.gif -> configuration d
/documents/1.jpg -> configuration e
注意,以上的匹配和在配置檔案中定義的順序無關。
location正則寫法
乙個示例:
location ~* /js/.*/\.js以=開頭表示精確匹配
如 a 中只匹配根目錄結尾的請求,後面不能帶任何字串。
^~ 開頭表示uri以某個常規字串開頭,不是正則匹配
~ 開頭表示區分大小寫的正則匹配;
~* 開頭表示不區分大小寫的正則匹配
/ 通用匹配, 如果沒有其它匹配,任何請求都會匹配到
順序不等於優先順序:
(location =) > (location 完整路徑) > (location ^~ 路徑) > (location ~,~* 正則順序) > (location 部分起始路徑) > (/)
上面的匹配結果。按照上面的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
實際使用建議
所以實際使用中,個人覺得至少有三個匹配規則定義,如下:
#直接匹配**根,通過網域名稱訪問**首頁比較頻繁,使用這個會加速處理,官網如是說。
#這裡是直接**給後端應用伺服器了,也可以是乙個靜態首頁
# 第乙個必選規則
location = /
# 第二個必選規則是處理靜態檔案請求,這是nginx作為http伺服器的強項
# 有兩種配置模式,目錄匹配或字尾匹配,任選其一或搭配使用
# 第三個規則就是通用規則,用來**動態請求到後端應用伺服器
# 非靜態檔案請求就預設是動態請求,自己根據實際把握
# 畢竟目前的一些框架的流行,帶.php,.jsp字尾的情況很少了
location /
Nginx 基礎配置
路就在腳下,你無力改變終點,但卻能決定腳踏出的方向.在 nginx.conf 的注釋符號為 預設的 nginx 配置檔案 nginx.conf 內容如下 全域性塊 events http http塊 location pattern server http全域性塊 全域性塊 配置影響nginx全域性...
Nginx 基礎配置
正文本文 自 文章經過我排版和潤色再加工,更加易讀。實在是了解nignx配置的基礎好文章。正文定義nginx執行的使用者和使用者組 user www www nginx程序數,建議設定為等於cpu總核心數。worker processes 8 全域性錯誤日誌定義型別,debug info notic...
Nginx基礎配置
nginx的配置中,至少需要載入幾個核心模組和乙個事件模組。這些模組執行所支援的配置項被稱為基本配置 其他模組執行時的依賴配置項。本文主要記錄基本配置項的用法,這裡主要分四類來進行記錄 1.用於除錯 定位問題的 2.正常執行的 3.優化效能的 4.事件類 在nginx中有一些配置項,不需要顯式配置,...