nginx 配置字段 location 解釋

2021-07-29 18:32:56 字數 2334 閱讀 4355

**:

nginx location可以根據字串或者正規表示式來進行匹配

如果要使用正規表示式,則必須以「~」或者"~*"開頭

"~"表示區分大小寫

"~*"表示不區分大小寫

匹配過程如下:

第一步:進行字串匹配,找到最合適的那乙個

第二步:進行正規表示式匹配,找到匹配上的第乙個

第三步:如果第二步匹配上了,則用第二步匹配的結果,否則用第一步匹配的結果

從上面可以看出來,正規表示式的優先順序要高一些

上面的匹配過程的例外:

1.可以用"="加在字串前面,表示完全匹配,如果過來的url與某個字串完全匹配(前面有"="),則搜尋停止。因此經常訪問"/",則用"=/"可以加快一點點處理速度(因為它停止了nginx配置中的其他搜尋)

2.如果只想用字串匹配,則在字串前加「^~」,則一旦字串匹配上了,就不會再進行正規表示式匹配

綜上,location的匹配規則如下:

1.先進行"="的完全匹配,如果匹配上,則搜尋停止

2.進行字串匹配,如果匹配上了,但是沒有"^~",則進行第3步;如果匹配上了,而且有"^~",則搜尋停止;

3.正規表示式匹配,如果匹配上了,則搜尋停止;如果沒有匹配上,則進行第4步;

4.此時第3步沒有匹配上,則拿第2步匹配的結果來進行,如果第2步也沒有匹配上,則跳到錯誤頁面(404)

}解釋:先進行"="的完全匹配,如果匹配上,則搜尋停止

正在解析主機 want.abc.com... 127.0.0.1

正在連線 want.abc.com|127.0.0.1|:80... 已連線。

已發出 http 請求,正在等待回應... 100 

2012-01-05 16:09:23 錯誤 100:(沒有描述)。

解釋:正規表示式沒有匹配上,就是用字串匹配

正在解析主機 want.abc.com... 127.0.0.1

正在連線 want.abc.com|127.0.0.1|:80... 已連線。

已發出 http 請求,正在等待回應... 101 

2012-01-05 16:12:03 錯誤 101:(沒有描述)。

解釋:進行字串匹配,匹配上了,同時有"^~",則停止搜尋

正在解析主機 want.abc.com... 127.0.0.1

正在連線 want.abc.com|127.0.0.1|:80... 已連線。

已發出 http 請求,正在等待回應... 103 

2012-01-05 16:12:25 錯誤 103:(沒有描述)。

解釋:正規表示式匹配上了,停止搜尋

正在解析主機 want.abc.com... 127.0.0.1

正在連線 want.abc.com|127.0.0.1|:80... 已連線。

已發出 http 請求,正在等待回應... 105 

2012-01-05 16:14:23 錯誤 105:(沒有描述)。

解釋:字串匹配上了,正規表示式匹配上了,但是優先使用正規表示式匹配

正在解析主機 want.abc.com... 127.0.0.1

正在連線 want.abc.com|127.0.0.1|:80... 已連線。

已發出 http 請求,正在等待回應... 107 

2012-01-05 16:18:15 錯誤 107:(沒有描述)。

nginx動態配置配置

nginx中的conf檔案配置測試 upstream backserver server upsync指令指定從consul哪個路徑拉取上游伺服器配置 upsync timeout配置從consul拉取上游伺服器配置的超時時間 upsync interval配置從consul拉取上游伺服器配置的間隔...

Nginx配置分析 nginx 二

基於網域名稱配置 在 conf nginx.conf中新增兩個虛擬主機配置 server server 配置host檔案,dns本地化 192.168.1.103 www.host1.com 192.168.1.103 www.host2.com 測試成功 埠配置在 conf nginx.conf中...

nginx 配置nginx集群(7)

1.準備兩台伺服器 且都安裝nginx 和keepalived 安裝keepalived yum install keepalived y安裝好後linux 的etc 資料夾下面會有keepalived資料夾以及配置檔案 2.修改keepalived的配置問價 virtual ipaddress3....