nginx“上游”指令是否有端口设置?

我使用上游和代理进行负载平衡.

指令proxy_pass http:// upstream_name使用默认端口,即80.

但是,如果上游服务器不在此端口上侦听,则请求失败.

如何指定备用端口?

我的配置:

http{
#...
upstream myups{
 server 192.168.1.100:6666;
server 192.168.1.101:9999;
}
#....
server{
listen 81;
#.....
location ~ /myapp {
 proxy_pass http://myups:81/;
}
}

nginx -t:

[warn]: upstream "myups" may not have port 81 in /opt/nginx/conf/nginx.conf:78.

最佳答案
在您的上游配置中,您已经定义了端口(6666和9999),这些端口是后端服务器需要监听的端口

在这种情况下,proxy_pass指令不需要额外的端口配置.
您的nginx侦听您在listen指令中定义的端口81

这是你试图做的吗?

http {
    #...
    upstream upstream_1{
        server 192.168.1.100:6666;
        server 192.168.1.101:9999;
    }

    upstream upstream_2{
        server 192.168.1.100:6661;  // other backstream port if you use port 81
        server 192.168.1.101:9991;
    }

    server {
        listen 80;
        #.....
        location ~ /myapp {
            proxy_pass http://upstream_1;
        }
    }

    server {
        listen 81;
        #.....
        location ~ /myapp {
            proxy_pass http://upstream_2;
        }
    }
}

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。