[特定区域的AWS上的504网关超时错误

问题描述 投票:2回答:1

当前环境:

Node.js API服务器托管在具有负载均衡器和安全组的EC2实例(Ubuntu20.04)上,我们充当HTTPS。前端在与Cloudfront链接的S3上。

这两个服务器都使用Route 53作为DNS提供程序,并且一切正常。

问题:

一切正常,但在特定区域无法正常工作-美国南温莎。 (互联网提供商是Cox Cable)。 API请求经常无故返回504(网关超时)错误。用户界面运行良好。仅API请求。但是它可以在墨西哥和俄罗斯等不同地区使用。

我已经在负载均衡器上尝试了很多东西,但是实际上在负载均衡器日志中没有发现504错误。 (我已经在cloudwatch中进行了检查)。这意味着请求没有到达。可能是Route 53的错误?仅配置了一个东西-CNAME,仅此而已。为什么在特定区域发生这种情况?

欢迎任何经验!

amazon-web-services amazon-ec2 amazon-route53 amazon-elb http-status-code-504
1个回答
0
投票

原因1:应用程序需要的响应时间比配置的不活动超时时间长。

  • 解决方案1:监视HTTPCode_ELB_5XX和延迟指标。如果这些指标有所增加,可能是因为应用程序在非活动超时时间内未响应。有关超出此限制的请求的详细信息,请在负载均衡器上启用访问日志,并查看Elastic Load Balancing生成的日志中的504响应代码。如有必要,可以增加容量或增加配置的停机时间。

原因2:已注册的实例正在关闭与Elastic Load Balancing的连接。

  • 解决方案2:在EC2实例上启用保持活动设置,并验证保持活动超时时间是否长于负载均衡器不活动超时设置。

注意:

  • 检查防火墙,安全组和原始服务器上的配置,以识别错误源
  • 如果您从CloudFront收到HTTP 504错误,但是您可以直接连接到原始服务器,则可以考虑增加分发的原始服务器响应超时。默认情况下,CloudFront允许您将原始连接保持打开状态30秒钟。如果您的应用程序需要30秒钟以上的时间来处理并返回响应,则CloudFront将返回HTTP 504错误。
© www.soinside.com 2019 - 2024. All rights reserved.