Nginx 502 错误(localhost 与 127.0.0.1)

Nginx 502 错误(localhost 与 127.0.0.1)

我有一个在 127.0.0.1:8080 上运行的 Web 应用程序。最初我nginx.conf使用 来配置我的localhost:8080。示例:

location / {
    proxy_set_header Host $host;
    proxy_pass http://localhost:8080;
}

99% 的时间里,这种方法都运行良好。但问题是,当用户发出请求并触发我的 Web 应用程序崩溃时,不仅该用户会收到 502 错误,而且我的整个网站也会对所有用户关闭。直到我手动重启 Web 应用程序。

预期的行为是触发错误的用户会收到 502 错误,但其他所有用户都不会收到该错误。因此网站仍可访问,而不会对所有人关闭。

我花了很长时间才弄清楚如何解决这个问题。直到我开始使用127.0.0.1:8080而不是localhost:8080。所以

location / {
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
}

如果一个用户在我的网络应用程序中引发了恐慌,那么使用127.0.0.1:8080我的网站将不再对所有人造成影响。

这是什么原因?我localhost也是127.0.0.1这么想的。这是因为使用localhost服务器仍然需要进行 DNS 请求,而 DNS 因错误而不可用吗?

相关内容