【问题标题】:Hosting static website with AWS S3 and Route 53使用 AWS S3 和 Route 53 托管静态网站
【发布时间】:2012-07-27 13:08:11
【问题描述】:
【问题讨论】:
标签:
amazon-s3
amazon-web-services
dns
amazon-route53
【解决方案1】:
首先,我建议添加一个名为 a.com 的额外存储桶并解决此问题,但不要删除 www.a.com,稍后您将向其中添加一个 CNAME,以便 www.a.com 重定向到a.com 在浏览器中。
现在您已经创建了 a.com 存储桶,请转到属性 > 静态网站托管 > 启用网站托管 > 输入 index.html 并将具有该名称的文件上传到您的存储桶。
然后去属性>权限>编辑桶策略>粘贴下面的代码:
{
"Version":"2008-10-17",
"Statement":[{
"Sid":"PublicReadForGetBucketObjects",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example-bucket/*"
]
}
]
}
将 {example-bucket} 更改为 {a.com} 并保存。
现在转到 Route53 > 选择您的域 > 转到记录集 > 创建记录集
确保“类型”设置为“A”,然后选择“别名”旁边的“是”。单击 Alias Target 区域,在 S3 网站下,您现在应该会看到 a.com。选择它,然后在底部选择“创建记录集”。
你已经完成了。
【解决方案2】:
这是在 S3 上托管静态站点时经常遇到的限制。你有几个选择。
- 使用
dig、nslookup 或类似工具确定 S3 存储桶使用的 IP 地址。这会奏效,但随着亚马逊围绕其 IP 进行洗牌,它最终可能会失败。
- 使用提供“裸重定向”服务的 Route53 以外的 DNS 提供商。当有人访问您的根目录时,DNS 提供商会将 HTTP 301 重定向到您的“www”记录。
- 在您自己的服务器/EC2 实例上托管一个非常简单的网站,该网站发出相同的 HTTP 301 重定向。
编辑:截至 2012 年 12 月 27 日,S3 现在支持一种无需上述所有变通方法即可执行此操作的方法。查看有关 root website hosting from S3 的 AWS 博客。