HTTP 502 状态代码(DNS 错误)
错误代码为 NonS3OriginDnsError
的 HTTP 502 错误表示存在 DNS 配置问题,导致 CloudFront 无法连接到源。如果您从 CloudFront 收到此错误,请确保源的 DNS 配置正确且有效。
当 CloudFront 收到针对已过期或不在缓存中的对象的请求时,它会向源发出请求,以获取该对象。为了成功向源发出请求,CloudFront 会对源域名执行 DNS 解析。如果您的域的 DNS 服务出现问题时,CloudFront 将无法解析域名以获取 IP 地址,从而导致 HTTP 502 错误 (NonS3OriginDnsError
)。要修复此问题,请联系您的 DNS 提供商,或者,如果您使用的是 Amazon Route 53,请参阅为什么我无法访问使用 Route 53 DNS 服务的网站?
要进一步解决该问题,请确保源的根域或顶级域(如 example.com
)的权威名称服务器运行正常。您可以通过 dig
dig
OriginAPEXDomainName
NS +short
nslookup -query=NS
OriginAPEXDomainName
如果您有名称服务器的名称,请使用以下命令针对这些名称查询源的域名,以确保每个查询都会得到响应:
dig
OriginDomainName
@NameServer
nslookup
OriginDomainName
NameServer
重要
确保使用连接到公共互联网的计算机执行此 DNS 故障排除。CloudFront 使用互联网上的公有 DNS 解析源域名,因此在类似环境中进行故障排除非常重要。
如果您的源是一个子域,其 DNS 权限被委托给与根域不同的域名服务器,请确保为该子域正确配置域名服务器 (NS
) 和授权起始点 (SOA
) 记录。您可以使用与上述示例类似的命令来检查这些记录。
有关 DNS 的更多信息,请参阅 Amazon Route 53 文档中的域名系统 (DNS) 概念。