在搭建公司內部一套業務系統測試環境是因爲須要使用到Nginx作反向代理,可是又沒有使用80/443端口作外部訪問使用。在web端訪問API時出現端口丟失的狀況,致使業務沒法正常訪問。web
在對應的*.conf的location中添加proxy_set_header Host $host:$server_port;
示例:api
upstream demoapi {
ip_hash;
server 172.20.0.100:20001;
server 172.20.0.101:20001;
}
server {
listen 10080;
server_name localhost;
location / {
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
# 獲取真實客戶端IP寫入到請求頭x-Real-IP
proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $host;
# 獲取代理端口
proxy_set_header Host $host:$server_port;
proxy_redirect off;
proxy_pass http://demoapi;
proxy_http_version 1.1;
}
}
複製代碼