Nginx反向代理至非80端口时丢失端口

原由

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