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


今天准備的線上演示版本,把端口映射到外網后,發現跳轉不正確,丟失了端口。

環境: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之后,暫時沒有發現什么不良反應。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM