静态 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.comexample.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.comhttp://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 证书覆盖

web.config 重写规则在 blob 存储中的 Azure 静态网站中不起作用

当内部作用域不起作用时,为啥编译器不采用命名空间名称?