AWS 负载均衡器 502
AWS Load Balancer 502
我在 EC2 实例上有微服务(使用不同的编程语言)运行。
在生产环境中,当这些服务尝试相互交互时,我注意到一些 502 Bad Gateway 错误。
同样在所请求服务的日志中,它没有显示任何 api 呼叫正在被命中
示例服务 A 调用服务 B,但在服务 B 日志中没有任何内容表明调用来自服务 A。
会不会是 AWS 负载均衡器的问题?任何帮助,将不胜感激。提前致谢。
尝试过的解决方案:
我们尝试在每项服务中制作 http/https 连接代理,但仍然遇到此问题。
更新:
在 lb 日志中,记录了 api,但目标响应代码显示“-”,而 lb 响应代码显示 502 或 504。这是否意味着 lb 无法处理流量或我的应用程序?
还有可能的解决方案是什么?
我们遇到了同样的问题。
在我们的设置中,一个 AWS 应用程序 ELB 有一个包含 4 个 EC2 实例的目标组。在每个 EC2 实例上,都有一个 Apache2 转发到 Tomcat.
ELB 的默认连接 KeepAlive 为 60 秒。 Apache2 的默认连接 KeepAlive 为 5 秒。如果 5 秒结束,Apache2 将关闭其连接并重置与 ELB 的连接。然而,如果一个请求恰好在正确的时间进来,ELB 将接受它,决定将它转发到哪个主机,在那一刻,Apache 关闭连接。这将导致上述 502 错误代码。
解决方案是:当你有级联时 proxies/LBs,要么调整他们的 KeepAlive 超时,或者 - 最好 - 甚至让他们越往下越长。
我们将 ELB 超时设置为 60 秒,将 Apache2 超时设置为 120 秒。问题消失了。
健康检查使用 HTTP2。我通过将 http2
添加到 listen 80.
让我的 EC2 实例 运行 NGINX 变得健康
listen 80 default_server http2;
我在 EC2 实例上有微服务(使用不同的编程语言)运行。 在生产环境中,当这些服务尝试相互交互时,我注意到一些 502 Bad Gateway 错误。 同样在所请求服务的日志中,它没有显示任何 api 呼叫正在被命中
示例服务 A 调用服务 B,但在服务 B 日志中没有任何内容表明调用来自服务 A。
会不会是 AWS 负载均衡器的问题?任何帮助,将不胜感激。提前致谢。
尝试过的解决方案: 我们尝试在每项服务中制作 http/https 连接代理,但仍然遇到此问题。
更新: 在 lb 日志中,记录了 api,但目标响应代码显示“-”,而 lb 响应代码显示 502 或 504。这是否意味着 lb 无法处理流量或我的应用程序?
还有可能的解决方案是什么?
我们遇到了同样的问题。
在我们的设置中,一个 AWS 应用程序 ELB 有一个包含 4 个 EC2 实例的目标组。在每个 EC2 实例上,都有一个 Apache2 转发到 Tomcat.
ELB 的默认连接 KeepAlive 为 60 秒。 Apache2 的默认连接 KeepAlive 为 5 秒。如果 5 秒结束,Apache2 将关闭其连接并重置与 ELB 的连接。然而,如果一个请求恰好在正确的时间进来,ELB 将接受它,决定将它转发到哪个主机,在那一刻,Apache 关闭连接。这将导致上述 502 错误代码。
解决方案是:当你有级联时 proxies/LBs,要么调整他们的 KeepAlive 超时,或者 - 最好 - 甚至让他们越往下越长。
我们将 ELB 超时设置为 60 秒,将 Apache2 超时设置为 120 秒。问题消失了。
健康检查使用 HTTP2。我通过将 http2
添加到 listen 80.
listen 80 default_server http2;