Nginx配置基礎 location

2021-07-31 10:03:15 字數 2756 閱讀 8810

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中有一些配置項,不需要顯式配置,...