0
主機名我想用改寫指令我的網站的每個IP地址重定向到該網站的主機名,也比使用proxy_pass指令訪問該網站在NGINX這樣重定向IP在NGINX
proxy_pass http://host/name ;
使用NGINX作爲代理可行,但我無法改變我的腳本來重寫地址並同時代理我的請求。我試圖使用Rewrite指令,但我無法找到正確的語法。
主機名我想用改寫指令我的網站的每個IP地址重定向到該網站的主機名,也比使用proxy_pass指令訪問該網站在NGINX這樣重定向IP在NGINX
proxy_pass http://host/name ;
使用NGINX作爲代理可行,但我無法改變我的腳本來重寫地址並同時代理我的請求。我試圖使用Rewrite指令,但我無法找到正確的語法。
使用rewrite指令更改主機將導致重定向。這意味着客戶端需要使用新主機發布另一個請求,然後,您可以proxy_pass這個請求。在這種情況下,客戶端(例如瀏覽器)中的URL將會更改,如'http://*.*.*.*:port/uri?request_string
' - >'http://host/uri?request_string
'。
通常,我們使用rewrite指令來更改將被proxy_passed請求的URI。如果你想改變主機,使用proxy_set_header
。舉個例子:
location ~* "^/maishenme/(knowse|knowdetail|iget|ilist|initem|i?compare)(.*)?$" {
rewrite "^/maishenme/(.*)?$" /$1 break;
proxy_pass http://***.xxx.com;
proxy_set_header Host "internal.xxx.com";
break;
}
在這種情況下,從客戶端,網址沒有改變,但對於後端服務器,可以打印主機領域,看看它改爲「internal.xxx.com」
能否請您解釋一下這更多的代碼我,我怎麼能與網站 – Hobbit1919
的真實IP和主機名來測試它,如果你能接受一個301或302重定向,使用「重定向」指令,然後proxy_pass.If你想要更改proxy_pass中的主機字段,可以使用proxy_set_header替換它。閱讀手冊並嘗試更多。 – TroyCheng