我正在使用 Amazon Elastic Compute Cloud (Amazon EC2) 实例作为自己的 Amazon CloudFront 分配的自定义源。CloudFront 返回了一个错误。为什么会发生这种情况?如何排查此问题?
解决方案
根据 CloudFront 返回的错误类型,请参阅相关部分了解问题排查步骤。
CloudFront 返回 502 错误
当 Amazon EC2 配置为自定义源时,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 源上配置了重定向。检查响应标头中的服务器以排查问题。