2

我们有一个特定的情况,我们希望从 GCS 提供静态网站(通过负载均衡器 w G CDN),我们强烈希望不为存储桶使用域命名。

我们不希望这样做的原因是域验证过程对用户非常不友好,并且需要我们的用户执行额外的步骤(我认为我们应该能够相当广泛地自动化这个过程,但这又是大量额外的开发工作我试图规避)。

我试过了

gsutil web set -m index.html gs://{bucket-name}

我将 mike.adhero.io 记录设置为负载均衡器的 IP。但它仍然显示 xml 样式丢失错误。mike.adhero.io/index.html 按预期工作

有没有什么办法解决这一问题?

4

2 回答 2

2

是否可以在没有域命名的情况下为 GCS 存储桶设置索引文件?

不会。原因是这会破坏正常存储桶访问(API 请求)的 API 行为。

和网站配置仅用于通过 CNAME 端点或 Cloud Load Balancing 到达 Cloud Storage 的请求MainPageSuffixNotFoundPage例如,对 www.example.com 的请求会显示索引页面,但对 storage.googleapis.com/www.example.com 的等效请求不会。

因此,对 Cloud Storage 域(例如 storage.googleapis.com/www.example.com)的请求的 API 行为会被保留。例如,您可以继续列出 www.example.com 存储桶中的对象,就像列出任何其他存储桶一样。对于 www.example.com 存储桶,您收到的对象列表包括 404.html 和 index.html。

这记录在以下 Google 文档中:

静态网站 API 行为

于 2019-07-20T00:33:41.890 回答
0


不,这是不可能的,正如约翰·汉利所说。当您配置一个没有域名命名的存储桶时,这可以被认为是云上的存储空间,您需要指定路径。您可以将其视为硬盘驱动器和文件夹,这就是为什么只有在您指定文件“mike.adhero.io/index.html”的路径和名称时才能正常工作。一旦您使用域名配置存储桶,API 就会识别您想要使用“网站服务”而不是“存储桶服务”。

据我了解,您正在尝试使用具有存储桶服务配置的网站服务,根据设计和目标,这是不可能/可行的。如果我错了,请纠正我。

同样正如 John 提到的,此选项需要在 Cloud Storage 中配置(当您指定域名时),因为负载均衡器仅用作配置的后端服务的访问点和负载分配。

关于域验证过程 [0],是的,最初可能会有点困难,一旦您完成了一次或两次该过程就真的很容易。我将与您分享几个视频,第一个是关于 Web 搜索控制台 [1],第二个是向 CLOUD DNS [2] 添加 TXT 记录,考虑到您的注册商可能是 Google Cloud DNS。你可以注意到流程是一样的,你只需要考虑每个注册商的流程差异。

希望这些信息对您有帮助
祝您有美好的一天!


[0]https://cloud.google.com/storage/docs/domain-name-verification
[1] https://www.youtube.com/watch?v=VRCmKkzeeMI
[2] https://www.youtube.com/看吗?v=ixIHDdHeInU

于 2019-07-22T18:39:36.607 回答