Amazon S3 静态托管自定义域

Posted

技术标签:

【中文标题】Amazon S3 静态托管自定义域【英文标题】:Amazon S3 Static Hosting Custom Domain 【发布时间】:2017-03-23 20:25:20 【问题描述】:

我正在学习一些 Web 开发,并且正在使用 Amazon S3 作为具有来自 Google 域的自定义域的 Web 主机。我使用了 Amazon AWS 页面中的指南,并且能够设置网页,但我无法让自定义域正常工作。

例如,Amazon S3 的终端节点 URL 指向 www.example.com.s3-website-us-east-1.amazonaws.com,我希望显示我的域 example.com。当我为 www.example.com 加载页面时,它会加载该页面,但是当我希望它显示简单的 example.com 时,它仍然显示 example.s3-website-us-east-1.amazonaws.com。

据我所知,我需要一个 CNAME,我已将其设置为 www.example.com -> www.example.com.s3-website-us-east-1.amazonaws.com 并具有永久重定向(301)和正向路径。

请帮忙!

【问题讨论】:

检查 www 存储桶上的设置。 “将所有请求重定向到另一个主机名”应该说“example.com”——而不是 example.com 存储桶的端点。 您是否按照Setting Up a Static Website Using a Custom Domain 上的指示进行操作?具体来说,您的 bucket name 是否设置为您的域名? @John Rotenstein 是的,这就是我所遵循的,我也有 www.example.com 和 example.com 作为存储桶。不过我没有设置任何 Route 53,我不确定在这种情况下是否需要它? @Michael - sqlbot 我已将我的 www 存储桶更改为现在将所有请求重定向到 example.com 而不是端点。我不确定它是否有任何帮助,但有问题的网站是 khatri.cc 看起来您在 Cloudflare 后面使用 S3。该网站似乎运行正常。 【参考方案1】:

在 Google 方面,将 CNAME 记录 (www) 配置为指向 s3.amazonaws.com。(是的,包括点)...像这样:

...等待几分钟。

确保您的 S3 存储桶名为:www.yourdomain.com

【讨论】:

【参考方案2】:

如果有人想知道我是如何让它工作的,我最终使用了 Cloudflare 及其免费的 DNS 选项。我将 DNS 服务器添加到 google 域,然后添加了两个 CNAME:

@ -> example.com -> example.com.s3-website-us-east-1.amazonaws.com (for the root)

CNAME -> www -> www.example.com.s3-website-us-east-1.amazonaws.com (for the www redirect)

【讨论】:

以上是关于Amazon S3 静态托管自定义域的主要内容,如果未能解决你的问题,请参考以下文章

使用 Amazon S3 设置自定义域

如何在 Amazon S3 中自定义 Rails 5.2 ActiveStorage 附件的路径?

Amazon s3 静态 Web 托管缓存

使用 S3 静态网站托管重定向到无法在 chrome 中工作的 WWW

在 Amazon S3 中托管静态网站而不使用 Amazon 路由 53

为啥托管静态网站时 Amazon S3 存储桶名称必须与网站名称相同