AWS 静态站点端点未正确加载

AWS static site endpoint not loading correctly

我按照相当复杂的 AWS 指南为我的网站设置静态托管,但目前无法加载,不知道为什么。我做了什么:

  1. 为网站内容创建了 S3 存储桶 estimate.dev
  2. 已上传 index.html 到 S3 存储桶的根目录
  3. 在 "Prermissions -> Block Public Access" 选项卡
  4. 中解除对 public 的所有访问
  5. 为 public 访问添加了存储桶策略:
    {
        "Version": "2012-10-17",
        "Id": "PolicyForPublicWebsiteContent",
        "Statement": [
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::estimate.dev/*"
            }
        ]
    }
  1. 添加了指向域 estimate.dev 和索引文件 index.html
  2. 的“静态网站托管”功能
  3. estimate.dev 添加了具有自动生成的 SOA 和 NS 记录的 Route 53 区域。为每个设置 60 秒的 TTL。
  4. 添加了指向我的 S3 存储桶的记录(select在组合框中编辑)
  5. 更改了我的注册商控制面板中的名称服务器以指向 SOA 记录中列出的 AWS 名称服务器
  6. 一天过去了

现在是故障排除部分:

  1. 在我的电脑上 estimate.dev 解析为 AWS IP(它在 2 天前解析了 Registrar IP)
  2. 这些 url 完美 return 我网站的内容(只有一页,index.html): http://estimate.dev.s3-website-us-east-1.amazonaws.com/ https://s3.amazonaws.com/estimate.dev/index.html
  3. 这些 url [http://estimate.dev] & [https://estimate.dev] return ERR_CONNECTION_TIMED_OUT 在 Chrome 加载一段时间后

我试图删除 A 记录并添加 CNAME,但它不允许我 select 我的 S3 存储桶在那里。所以我又回到了A记录。

我在这里想念什么?

除了 S3 网站端点(不是 REST API)不支持 HTTPS 并且许多现代浏览器由于 HSTS 政策而尝试使用 https 并且您会看到连接超时之外,一切都是正确的。

要使其在 HTTPS 上运行,您可以使用 CloudFront 并使用以下设置 link:

https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/