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

1 nginx

移自:https : //stackoverflow.com/questions/3748517/does-nginx-upstream-has-a-port-setting

我使用upstreamproxy进行负载平衡。

该指令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/;
}
}
Run Code Online (Sandbox Code Playgroud)

nginx -t:

[warn]: upstream "myups" may not have port 81 in /opt/nginx/conf/nginx.conf:78.
Run Code Online (Sandbox Code Playgroud)

小智 5

我认为您误解了该行的含义:

proxy_pass http://myups;

这一行告诉 nginx 将请求传递给“上游 myups”块中列出的服务器之一。它不会返回到互联网向 proxy_pass 的 URL 发送请求。

换句话说,当请求通过端口 81 到达 nginx 服务器时,您指定的主机名,它会将请求传递到 192.168.1.100:6666 或 192.168.1.101:9999。

希望这能让它变得清晰一点。