**:
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....