1. 程式人生 > >站點映射到外網踩到的坑,跳轉丟失端口

站點映射到外網踩到的坑,跳轉丟失端口

部分 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之後,暫時沒有發現什麽不良反應。

站點映射到外網踩到的坑,跳轉丟失端口