在搭建公司内部一套业务系统测试环境是因为须要使用到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;
}
}
复制代码