有多个子域引用没有 HTTP 重定向的同一个 S3 存储桶

have multiple subdomains refer to the same S3 bucket without HTTP redirect

我有一个名为 subdomain.domain.com 的存储桶,其中包含用户访问各种子域时应使用的代码。

例如正在去: - a.domain.com - b.domain.com - c.domain.com

应该去同一个桶。

我已将所有子域 URL 的 CNAME 设置为转到 subdomain.domain.com 存储桶的 URL。问题是,AWS 试图寻找 bucket a.domain.com' instead of just going tosubdomain.domain.com' bucket

我读过一些建议,说我可以创建一个像 a.domain.com 这样的存储桶并将其重定向回 subdomain.domain.com,但我不想 URL 改变,我'我希望能够只上传到一个存储桶,所有子域都会更新。

一些在 S3 中看起来 "missing" 的功能实际上被设计到 CloudFront 中,它是对 S3 的补充。将多个域名指向单个存储桶是这些功能之一。仅使用 S3 是不可能做到这一点的,因为正如您所注意到的,S3 会将主机名与存储桶名称相匹配。

创建 CloudFront 分配,将每个所需的域名定义为备用域名。

对于源服务器,输入在 S3 控制台中找到的存储桶的网站端点主机名。 (不要 select 从下拉列表中选择桶)。

将各种主机名指向 DNS 中的 CloudFront。

CloudFront 将转换传入的主机名,以便 S3 为单个存储桶(您指定为源服务器的存储桶)中的所有域提供服务。


请注意,此配置还允许您有选择地将 SSL 与您的 Web 托管存储桶一起使用,这是 S3 依赖 CloudFront 实现的另一个功能。