对于 S3 站点,如何配置 S3、Route53 和 Cloudfront 始终使用根域

For S3 site, how to configure S3, Route53, and Cloudfront to always use the root domain

如何使用 Route53 配置启用 Cloudfront 的 S3 站点以始终使用 root/naked 域?

例如,一个名为 example.com 的域。首先,我知道需要创建两个存储桶,www.example.com 和 example.com。除此之外,使用 Cloudfront 和 Route53 时会变得棘手。

想通了:

S3

  • 将您网站的内容放入存储桶 example.com。注意端点 URL。就我而言,它类似于 example.com.s3-website-us-east-1.amazonaws.com.
  • 在 example.com 存储桶的属性中,设置“启用网络托管
  • 在 www.example.com 存储桶的属性中,设置“将所有请求重定向到另一个主机名”和将所有请求重定向到 设置为 example.com

CloudFront

创建 CloudFront 分配源:example.com.s3-website-us-east-1.amazonaws.com(注意,使用 CloudFront 时,选择列表中的默认源选项显示为 example.com.s3.amazonaws.com,但它应该是 example.com.s3-website-us-east-1.amazonaws.com。前者是美国标准,后者是美国东部,应该可以,但我 运行 成问题)。

Route53

对于 example.com 托管区域,创建两个 DNS 记录(如果区域例如在 Route53 上,则应该已经有 NS 和 SOA 记录):

1

  • 类型:A
  • 名称:(空白)-(因此 root/naked 域,example.com)
  • 别名:是
  • 别名目标:'some cloudfront id'.cloudfront.net.

2

  • 类型:CNAME
  • 名称:www(因此 www.example.com)
  • 别名:无
  • 值:example.com.s3-website-us-east-1.amazonaws.com