文章參考
nginx_proxy_pass
proxy_pass詳解
nginx location匹配規則
匹配規則
= 精確匹配
^~ 帶參字首匹配(非正則匹配)
~ 區分大小寫的正則匹配
~* 不區分大小寫的正則匹配
/a 普通字首匹配,優先順序低於帶引數字首匹配
/ 任何沒有匹配成功的都會匹配到這
字首匹配遵循字首最長原則
匹配順序
=
和^~
均未匹配成功的前提下,查詢正則匹配~
和~*
;當有多個正則匹配時,按其在配置檔案的先後順序
匹配,命中則立即停止其他型別的匹配
所有正則匹配均未成功時,返回步驟2中的普通字首匹配結果
或沒有暫存的則返回 配置了 / 請求的結果
nginx proxy_pass 帶/跟不帶/
比如下面設定:
location ^~ /wangshibo/
如上面的配置,如果請求的url是http://servername/wangshibo/test.html會被**成
而如果這麼配置
location ^~ /wangshibo/
則請求的url是http://servername/wangshibo/test.html會被**到
當然,可以用如下的rewrite來實現/的功能
location ^~ /wangshibo/
在向後端進行**的時候,會用重定向後的uri替換上游伺服器的uri
location 的url帶/ 跟不帶/ 問題
關於 uri 尾部的/
有三點也需要說明一下。第一點與 location 配置有關,其他兩點無關。
location 中的字元有沒有/
都沒有影響。也就是說/user/
和/user
是一樣的。
如果 uri 結構是的形式,尾部有沒有
/
都不會造成重定向。因為瀏覽器在發起請求的時候,預設加上了/
。雖然很多瀏覽器在位址列裡也不會顯示/
。這一點,可以訪問baidu驗證一下。
如果 uri 的結構是some-dir/
。尾部如果缺少/
將導致重定向。
因為根據約定,url 尾部的/
表示目錄,沒有/
表示檔案。所以訪問/some-dir/
時,伺服器會自動去該目錄下找對應的預設檔案。如果訪問/some-dir
的話,伺服器會先去找some-dir
檔案,找不到的話會將some-dir
當成目錄,重定向到/some-dir/
,去該目錄下找預設檔案
用 進行訪問。
第一種:
location /proxy/
**到url:
第二種(相對於第一種,最後少乙個 / )
location /proxy/
**到url:
第三種:
location /proxy/
**到url:
第四種(相對於第三種,最後少乙個 / )
location /proxy/
**到url:
nginx強制跳轉443rewrite ^(.*)$ https://$$1 permanent;
主網域名稱強制跳轉wwwif ($host = 'test.com')
nginx筆記6 總結
1.輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2.weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3.ip hash 每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決ses...
Nginx 筆記與總結(2)訊號控制
開啟 關閉 重啟 nginx 開啟 usr local nginx sbin nginx關閉,用訊號控制,語法 kill 訊號名 pid檢視 nginx 程序 或ps aux grep nginx master process 表示主程序,用來管理子程序 關閉 nginx master proces...
nginx 配置總結
1 首先配置tomcat的jvmroute 2 在proxy.conf中配置 上傳檔案最大值,作用於header client max body size 100m 根據瀏覽器不同此值可能關係到檔案的上傳,待驗證 client body buffer size 256k proxy connect ...