Cloudfront 在连接到 ELB/Elastic Beanstalk 时抛出 504

Blu*_*oye 2 amazon-web-services amazon-cloudfront amazon-elb amazon-elastic-beanstalk

因此,我有一个托管在 Elastic Beanstalk 上的 NextJS 应用程序(它在 docker 文件中的端口 3000 上公开)。现在,我已在 Godaddy 注册了域名。我最初在 Godaddy 中设置了指向 Elastic Beanstalk 的 DNS。但后来我想使用 cloudfront 进行 CDN/缓存。

因此,我开始配置 Cloudfront(使用本文)。我创建了自定义 SSL 证书并通过 DNS 对其进行了验证。我将 cloudfront 中的原点设置为指向 ELB。

现在,部署 cloudfront 发行版后,我尝试使用 cloudfront URL xxxxx.cloudfront.net,但出现"504 ERROR - The request could not be satisfied"错误。

如果我访问 ELB URL,我就可以访问我的应用程序。所以,我不确定这里出了什么问题。如果 Cloudfront 指向 ELB 并且 ELB 有效,那么为什么 cloudfront URL 不起作用。

有什么建议/建议吗?

Chr*_*ams 7

如果您收到 504 错误,则表示连接到源时超时。

您应该检查以下内容:

  • ELB 的安全组是否允许来自任何人的入站流量(在端口 80/443 上)?如果没有,CloudFront 将被阻止。
  • 您是否错误配置了“源协议策略”,通过选择“匹配查看器”,它会期望命中 CloudFront 的 HTTPS 请求尝试通过 HTTPS 连接到源。
  • 您的应用程序的启动时间是否超过了 的值Origin Response Timeout?默认情况下,该时间为 30 秒。
  • 确保来源是正确的域名。

在 AWS 上的HTTP 504 状态代码(网关超时)页面中,还需要执行其他步骤来调试 CloudFront 中的 504 。