【问题标题】:Load Balancer Nginx 502 Bad Gateway, No live upstream Docker负载均衡器 Nginx 502 网关错误,没有实时上游 Docker
【发布时间】: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


【解决方案1】:

由于您的 Nginx 在容器中运行,它的 localhost 与主机的不同。每个容器都有自己的 localhost。

可能最好的方法是创建一个新网络并将容器放入其中并使用名称连接到其他容器。名称解析在自建网络中工作,您无需知道 IP 地址或向主机公开任何端口。

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 2016-11-10
    • 1970-01-01
    • 2018-09-10
    • 2015-03-14
    • 2018-04-14
    • 2017-06-10
    • 2018-12-30
    相关资源
    最近更新 更多