静态 GCS 网站存储桶和 http 根域不起作用
Posted
技术标签:
【中文标题】静态 GCS 网站存储桶和 http 根域不起作用【英文标题】:Static GCS Website bucket and http root domain not workiing 【发布时间】:2021-05-17 00:01:38 【问题描述】:我创建了一个 GCS 存储桶 www.example.com
并使用我的 DNS 提供商 (DNSimple) 设置了一条 CNAME 记录以指向 c.storage.googleapis.com
。我现在可以使用www
访问我的域,但也希望将根域指向存储桶。通过合成记录(谷歌域)或别名记录(其他 dns 提供商)似乎可以阅读同一主题的线程。我似乎无法让它与 DNSimple 一起使用,所以想知道是否有人能发现我的错误?
访问根域时出现以下错误:
<Error>
<Code>NoSuchBucket</Code>
<Message>The specified bucket does not exist.</Message>
</Error>
我将我的 ALIAS 记录设置为将我的根域 example.com
指向 www.example.com
,但仍然没有运气。所以基本上以下两条记录:
ALIAS example.com www.example.com
CNAME www.example.com c.storage.googleapis.com
我是否遗漏了什么,或者这是 DNSimple 的限制,因为这似乎适用于 Google Domains(在阅读其他问题之后)?
只是从谷歌文档中添加一点相同的内容:
注意:DNS 不支持在根域上创建 CNAME 记录, 例如 example.com,所以在大多数情况下,您必须创建您的 CNAME 记录在子域上,例如 www.example.com 或 myblog.example.com。 一些 DNS 提供商提供非标准功能,允许根 在不使用 CNAME 的情况下将域别名为另一个名称。咨询 您的 DNS 提供商文档,以确定此类功能是否适用 可用。
【问题讨论】:
【参考方案1】:我对 GCS 不是很熟悉,因为我将 AWS 用于相同目的。但是,有一些建议:
-
确保verify the domain
确保您拥有与存储桶/配置相关联的 www 和 apex。这通常是缺少的步骤。
www.example.com
和 example.com
是两个不同的主机名,如果您将两个 DNS 记录都指向 Google,但您在 Google 帐户中仅配置了 www.example.com
,那么 apex 将不起作用(这可能是您的情况)。
最后,我建议您将 ALIAS 配置为指向目标 (c.storage.googleapis.com
) 而不是 www 本地主机名。
【讨论】:
感谢您的回复。域已验证并且 dns 记录设置如上,因此根域和 www 子域都应该指向正确的存储桶。将 ALIAS 设置为指向 c.storage.googleapis.com 将不起作用,因为存储桶名称为 www.mydomain.com,它们需要匹配 DNS 才能解析到正确的存储桶。 名称由解析器传递。将 ALIAS 直接指向结束名称(而不是 www)是您应该采用的方式,因为您将减少一个分辨率步骤。【参考方案2】:这比我想象的要简单。我不得不添加一个指向example.com
http://www.example.com
的URL 记录,而不是添加一个别名记录,以使重定向工作。
【讨论】:
以上是关于静态 GCS 网站存储桶和 http 根域不起作用的主要内容,如果未能解决你的问题,请参考以下文章
将 Amazon S3 存储桶和 Cloudfront 与 SSL Wordpress 站点一起使用不会提供静态文件
来自本地文件的jQuery ajax POST访问跨域不起作用
如何在 aws s3 存储桶和云端执行从非 www 到 www 的 301 重定向
AWS 负载均衡器需要 CNAME 作为 DNS 指针。 www.domain 被覆盖,但根域不被 SSL 证书覆盖