如何排查与 CloudFront 中的 EC2 源相关的问题?

上次更新日期:2022 年 6 月 10 日

我正在使用 Amazon Elastic Compute Cloud (Amazon EC2) 实例作为自己的 Amazon CloudFront 分配的自定义源。CloudFront 返回了一个错误。为什么会发生这种情况?如何排查此问题?

解决方案

根据 CloudFront 返回的错误类型,请参阅相关部分了解问题排查步骤。

CloudFront 返回 502 错误

CloudFront 返回 503 错误

如果您的 CloudFront 行为关闭了缓存,则所有请求都将定向到源 EC2 实例,而不是从 CloudFront 缓存中提供服务。在此情况下,源 EC2 实例可能会因大量传入请求而变得不堪重负,然后返回 503 错误。

要排查 503 错误,请参阅原始服务器没有足够的容量来支持请求速率

如果 CloudFront 无法将请求路由到下一个最佳可用节点位置,并且不能满足请求,则会返回 503:超出容量错误。有关更多信息,请参阅 CloudFront 由于节点位置的资源限制而导致错误

CloudFront 返回 504 错误

当 Amazon EC2 配置为 CloudFront 分配的自定义源时,CloudFront 返回 504 错误的原因有两点:

  • 源向 CloudFront 返回了 HTTP 504 状态码。
  • 在请求过期之前,源没有响应。
有关问题排查步骤,请参阅 HTTP 504 状态代码(网关超时)

重定向错误

如果您在浏览器中看到重定向错误,请查看浏览器开发者工具中的“网络”部分。如果您在 CloudFront 分配中看到同一请求的多个实例,则重定向会导致浏览器错误。

要解决重定向错误:

  • 检查响应标头中的任何位置标头。位置标头表示发出请求时,将重定向发送到位置标头中的值。要解决此问题,请检查发送重定向的位置上的任何重定向规则或配置。
  • 检查服务器响应标头。例如,如果将“服务器”值设置为 EC2 服务器托管内容的 HTTP 服务器,则在 EC2 源上配置了重定向。检查响应标头中的服务器以排查问题。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?