站點映射到外網踩到的坑,跳轉丟失端口
阿新 • • 發佈:2017-05-11
部分 encoding attribute 虛擬 一段 head 將不 clas span
今天準備的線上演示版本,把端口映射到外網後,發現跳轉不正確,丟失了端口。
環境:centos7+docker
方案嘗試: 1、修改docker的端口映射,直接把nginx的端口改為外網的端口。改完之後,大部分連接好用,還有個別鏈接不好用。方案被pass。 2、我們的nginx的原來配置有這麽一行:proxy_set_header Host $host; 我查看了nginx的文檔,有這麽一段說明 :如果不想改變請求頭“Host”的值,可以這樣來設置:
proxy_set_header Host $http_host;
但是,如果客戶端請求頭中沒有攜帶這個頭部,那麽傳遞到後端服務器的請求也不含這個頭部。 這種情況下,更好的方式是使用 $host
變量——它的值在請求包含“Host”請求頭時為“Host”字段的值,在請求未攜帶“Host”請求頭時為虛擬主機的主域名:
proxy_set_header Host $host;
此外,服務器名可以和後端服務器的端口一起傳送:
proxy_set_header Host $host:$proxy_port;
如果某個請求頭的值為空,那麽這個請求頭將不會傳送給後端服務器:
proxy_set_header Accept-Encoding "";
於是把這行配置改為: proxy_set_header Host $http_host;
改完之後,沒有發現丟失端口的情況。
使用方案2之後,暫時沒有發現什麽不良反應。站點映射到外網踩到的坑,跳轉丟失端口