如何使用 Google Cloud CDN、Google Cloud Storage 和自定义域为静态网站提供服务?

How do you serve a static website using Google Cloud CDN, Google Cloud Storage, and a custom domain?

我想建立一个静态网站,文件存储在 Google 存储桶中。我已经拥有一个自定义域并且至少有一些准系统文件来查看站点是否设置成功。

理想情况下,我希望在访问该自定义域时通过 SSL 提供内容,并利用 Google 云 CDN 从 Google 存储中缓存内容,以便最终用户可以从 Google 存储中获得内容CDN 而不是直接从 Cloud Storage 提供服务。

如果 Google enables/supports 这个场景在这一点上,我还没有找到完美的设置甚至巩固(我读过可能需要利用负载平衡器来支持 SSL,但没有定论)。

到目前为止,我已经创建了一个 Google 存储桶并上传了所需的文件。然后,我将存储桶设为公开可读,以确保不存在任何权限问题。从那里我设置了一个负载平衡器来利用我的自定义域,选中 Google Cloud CDN 的复选框,刚刚创建的存储桶,设置为后端,主机文件映射设置为默认设置。

更新: 事实证明只需要几个步骤。首先,我需要为正在使用的存储桶关闭 "Requestor Pays"。其次,我需要为 "allUsers" 添加 "Storage Object Viewer" 的权限(旧权限在这里不起作用)。最后,我必须将 "A" 和 "AAAA" 记录都设置为我的负载均衡器的 IPV4 和 IPV6 地址,用于我域名上的 DNS 配置(并清除所有以前的值,以便它们仅引用给新的)。所有这些都完成后,一切正常:)

感谢 Cloud Ace(引导我朝着正确的方向前进)和我上周遇到的一位 Google 客户工程师(推荐我参考这篇文章:https://medium.com/@marco_37432/create-a-custom-domain-cdn-with-google-beta-7ad9531dfbae)!

当您创建 HTTP(S) 负载平衡器时,如果您将协议设置为 HTTPS,前端配置中应该有一个 Certificate 部分,同时保留一个静态 IP。然后你可以配置DNS把域指向这个IP。