正如标题所示,我将 ubuntu 服务器 14.04 升级到了 16.04。我使用 nginx 作为我的 Web 服务器,并且还运行 java/tomcat 服务器,在我的 nginx 配置中将其设置为 proxy_pass。
自升级以来,每次服务器启动时,nginx 都会502: Bad Gateway
在尝试连接到 proxy_pass 站点时显示错误。我的配置中指定的所有其他站点均按预期运行。
为了解决这个问题,我必须sudo systemctl restart nginx
,之后,proxy_pass 服务才能正常工作。
我不想每次启动时都要重新启动 nginx。如何解决这个问题?
答案1
24 小时后,我在 serverfault 上交叉发布了这个问题,并且我将在这里包含针对我这个特定问题的解决方案,以供后人参考。
在我的配置中,相关 nginx 位置块的 proxy_pass 指令指出:
proxy_pass http://localhost:4040;
然而,上游服务实际上绑定到了 ipv4 地址,并且启动速度也比 nginx 慢。
当 nginx 检查上游服务器的状态时,其连接被拒绝。此后,当 nginx 尝试重新检查上游服务器的状态时,它继续仅检查 IPV6 地址 [::1]。
为了解决这个问题,我指定了 ipv4 地址 (127.0.0.1) 而不是 localhost,从而强制 nginx 仅使用 ipv4。现在一切都按预期运行。