【发布时间】:2022-01-10 10:30:28
【问题描述】:
我对这个 docker 东西很新,我正在尝试创建一个 2 台服务器的负载均衡器,第一个端口是 localhost:2222 和 localhost:3333,可以正常访问。
http {
upstream all {
server 127.0.0.1:3333;
server 127.0.0.1:2222;
}
server{
listen 8080;
location / {
proxy_ssl_server_name on;
proxy_pass http://all/;
}
}
}
events {}
但是当我尝试将它与具有此配置的 nginx 负载平衡器集成时。使用 localhost:8080 作为监听器,无法访问它总是显示 502 bad gateway 并且 nginx 显示此错误
2021/12/04 10:04:23 [错误] 32#32: *4 connect() 在连接到上游时失败(111:连接被拒绝),客户端:172.17.0.1,服务器:,请求:“GET /HTTP/1.1”,上游:“http://127.0.0.1:2222/”,主机:“localhost:8080”
2021/12/04 10:04:23 [错误] 32#32: *4 connect() 在连接到上游时失败(111:连接被拒绝),客户端:172.17.0.1,服务器:,请求:“GET /HTTP/1.1”,上游:“http://127.0.0.1:3333/”,主机:“localhost:8080” 172.17.0.1 - - [04/Dec/2021:10:04:23 +0000] "GET / HTTP/1.1" 502 157 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:93.0) Gecko/ 20100101 火狐/93.0"
2021/12/04 10:04:27 [错误] 32#32: *4 连接到上游时没有实时上游,客户端:172.17.0.1,服务器:,请求:“GET / HTTP/1.1”,上游:“http://all/”,主机:“localhost:8080” 172.17.0.1 - - [04/Dec/2021:10:04:27 +0000] "GET / HTTP/1.1" 502 157 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:93.0) Gecko/ 20100101 火狐/93.0"
有人知道怎么解决吗?我已经为此苦苦挣扎了很长时间
【问题讨论】:
-
Nginx 不是在容器中运行,而是在主机中运行?
-
nginx 在容器中运行但与 web 容器分离
-
不要使用环回地址(127.0.0.1)。如果您公开容器端口,请使用主机 IP 地址。或者链接容器并使用容器名称而不是环回地址。
-
@furqon2710 这就是问题所在。容器的 localhost 与主机的 localhost 不同。您必须使用名称(使用非默认网络)或已知 IP 地址
标签: linux docker ubuntu nginx load-balancing