从: https : //stackoverflow.com/questions/3748517/does-nginx-upstream-has-a-port-setting
我使用upstream和proxy进行负载平衡。
指令proxy_pass http://upstream_name使用默认端口,即80。
但是,如果上游服务器不侦听此端口,则请求失败。
我的configuration:
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.
我认为你错误地解释了这一行的含义:
proxy_pass http://myups ;
这一行告诉nginx将请求传递给“上游myups”块中列出的服务器之一。 这是不会回到互联网向proxy_pass的URL发送请求。
换句话说,当一个请求到达端口81上的nginx服务器时,你指定的主机名会将请求传递给192.168.1.100:6666或192.168.1.101:9999。
希望这个清除一点。
您应该只在“上游”定义内的“服务器”语句中设置端口。
(听哪个端口?6666,9999或81?)