具有 S3 静态站点托管的 Cloudfront 响应 504 错误

Joh*_*ght 5 amazon-s3 amazon-web-services amazon-cloudfront

我已设置 S3 + Cloudfront 以使用 Namecheap 提供的子域托管静态网站,但当导航到 Cloudfront URL 或域 URL 时,AWS 响应 504:“无法满足请求”错误。

我已完成的步骤是:

  1. 将 S3 存储桶设置为静态网站托管:启用并将托管类型设置为“存储桶托管”。桶是Publicly accessible.
  2. 设置一个 Cloudfront 发行版,并将其原始域设置为[bucket name].s3-website-ap-southeast-2.amazonaws.com已完成部署。
  3. 设置[subdomain].[domain].io为 Cloudfront 发行版中的备用域名。
  4. 已将自定义 SSL 证书分配给我的分配,该证书的状态为我的自定义域的 AWS Certificate Manager 中的“已颁发”[subdomain].[domain].io
  5. 在 NameCheap 中设置 CNAME,以便[subdomain]指向[abc123].cloudfront.net.已传播的 CNAME(由 Whatsmydns.net 确认)

我是 Cloudfront + S3 托管的新手,正在尝试提高技能,但一般不会托管(我通常将 EC2 与 Apache 或 NGINX 一起使用)。

如何解决 504 错误?

小智 11

我在 terraform 中解决这个问题的方法是: origin_protocol_policy = "http-only"

因为 s3 静态网站端点位于 http 上,所以如果您选择“仅 https”,则会出现 504 错误。


Joh*_*ght 3

问题原来是我正在使用[bucket name].s3-website-ap-southeast-2.amazonaws.com像我正在使用的教程一样需要特别注意指定。现在看来你应该改用[bucket name].s3.ap-southeast-2.amazonaws.com

一旦我进行了上述更新并部署了发行版,一切就开始工作了。