使用后端存储分区设置 Cloud CDN
https://cloud.google.com/cdn/docs/setting-up-cdn-with-bucket?authuser=1
Cloud CDN 利用 Google Cloud 全球外部 HTTP(S) 负载平衡器来提供路由、运行状况检查和任播 IP 支持。由于全球外部 HTTP(S) 负载平衡器可以有多种后端实例类型(Compute Engine 虚拟机实例、Google Kubernetes Engine pod、Cloud Storage 存储分区或 Google Cloud 之外的外部源站),因此您可以选择为哪些后端(源站)启用 Cloud CDN。
本设置指南介绍如何创建一个启用了 Cloud CDN 的简单的外部 HTTP(S) 负载平衡器。该示例使用以下资源:
默认 Virtual Private Cloud (VPC) 网络
默认网址映射
预留的外部 IP 地址
作为后端的 Cloud Storage 存储分区
一个负载平衡器后端存储分区,用作 Cloud Storage 存储分区的封装容器
后端存储分区支持以下功能:
处于 Google 全球边缘的缓存内容的 Cloud CDN 政策
如需了解 Cloud CDN 的工作原理,请参阅 Cloud CDN 概览。
负载平衡器后端
外部 HTTP(S) 负载平衡器使用网址映射将来自指定网址的流量定向到指定服务。下表汇总了您可以在其中托管内容和服务的后端类型。
负载平衡器后端配置 | 典型内容类型 | 后端类型 |
后端服务 | 动态(如数据) |
|
后端存储分区 | 静态(如映像) |
|
准备工作
如果您要使用
gcloud
或gsutil
实用程序,请参阅《快速入门:使用gsutil
工具》进行安装。在 Google Cloud Console 中,转到首页。
在 Google Cloud 的右侧,从下拉菜单中选择一个项目。
创建 Cloud Storage 存储分区
如果您已有尚未分配给负载平衡器的 Cloud Storage 存储分区,则可以跳至下一步。
创建 Cloud Storage 存储分区以用作使用 Cloud CDN 的外部 HTTP(S) 负载平衡器的后端时,我们建议您选择一个多区域存储分区,它会自动跨多个 Google Cloud 区域复制对象。这可以提高内容的可用性,并提高应用的故障容忍度。控制台gsutil
在 Google Cloud Console 中打开 Cloud Storage 浏览器。
点击创建存储分区。
为下表中的字段指定值,其他所有字段保留默认值:
属性
值(输入值或选择指定的选项)
名称
为每个存储分区输入一个全局唯一的名称。如果您输入的名称不是唯一的,则会看到一条消息,提示您尝试使用其他名称。
位置类型
多区域
位置
选择一个区域,例如 us(美国的多个区域)。
默认存储类别
标准
访问控制
统一
点击创建。
记下新创建的 Cloud Storage 存储分区的名称,以进行下一步。
将图形文件复制到 Cloud Storage 存储分区
要使您能够测试设置,请将图形文件从公共 Cloud Storage 存储分区复制到自己的 Cloud Storage 存储分区。
在 Cloud Shell 中运行以下命令。将
BUCKET_NAME
替换为您的 Cloud Storage 存储分区的唯一名称:在 Cloud Console 中,点击刷新,以验证图形文件已复制。
将 Cloud Storage 存储分区设为公开
此示例使您的 Cloud Storage 存储分区可供公开读取。这是公开内容的推荐方法。如此设置时,互联网上的任何人都可以查看和列出您的对象及其元数据(不包括 ACL)。推荐做法是将特定 Cloud Storage 存储分区专用于公开对象。如需了解详情,请参阅建议的存储分区架构。重要提示:从公共 Cloud Storage 存储分区传送对象时,默认情况下,对象应用了 Cache-Control: public, max-age=3600
响应标头。这样,您可以在启用 Cloud CDN 时缓存对象。
以下是将 Cloud Storage 存储分区设为公开的其他方法:
以下过程授予所有用户查看 Cloud Storage 存储分区中的对象的权限,使该存储分区可公开读取。控制台gsutil
在 Google Cloud Console 中打开 Cloud Storage 浏览器。
导航到该存储分区,然后点击权限标签页。
点击添加成员。
在新成员中输入
allUsers
。对于角色,请选择 Cloud Storage > Storage Object Viewer。
点击保存。
预留外部 IP 地址
现在您的 Cloud Storage 存储分区已启动并正在运行,接下来请设置全局静态外部 IP 地址,您的客户将使用此地址访问负载平衡器。
此步骤是可选的,但建议执行此操作,因为静态外部 IP 地址会提供单个地址以指向您的网域。注意:您可以跳过此步骤,让 Google Cloud 将临时 IP 地址与负载平衡器的转发规则相关联。转发规则存在时,临时 IP 地址保持不变。如果您需要删除转发规则并重新添加,则转发规则可能会收到新的 IP 地址。控制台gcloud
在 Google Cloud Console 中,转到外部 IP 地址页面。
如需预留 IPv4 地址,请点击预留静态地址。
指定名称
example-ip
。将网络服务层级设置为优质。
将 IP 版本设置为 IPv4。
将类型设置为全局。
点击保留。
创建外部 HTTP(S) 负载平衡器
如果要创建 HTTPS 负载平衡器,您必须具有可添加到负载平衡器前端的 SSL 证书资源。如需了解详情,请参阅 SSL 证书概览。控制台
开始外部 HTTP(S) 负载平衡器配置过程
在 Google Cloud Console 中,转到负载平衡页面。
在 HTTP(S) 负载平衡下,点击开始配置。
选择从互联网到我的虚拟机,然后点击继续。
将名称设置为
http-lb
,然后转到下一步。
配置后端并启用 Cloud CDN
创建负载平衡器的后端存储分区,将其用作 Cloud Storage 存储分区的封装容器。创建或修改后端存储分区时,您可以启用 Cloud CDN。
点击后端配置。
在后端服务和后端存储分区下,点击创建或选择后端服务和后端存储分区,然后点击后端存储分区 > 创建后端存储分区。
将名称设置为
backend-bucket1
。 此名称不需要是全局唯一的,并且可以与实际 Cloud Storage 存储分区的名称不同。在 Cloud Storage 存储分区下,点击浏览。
选择您创建的 Cloud Storage 全局唯一
BUCKET_NAME
,然后点击选择。点击启用 Cloud CDN。重要提示:请确保您在此步骤中选择启用 Cloud CDN。忘记执行此操作会导致直接从 Cloud Storage 存储分区传送对象,而不是从 Google 的全球 CDN 缓存传送。
点击创建。
配置主机规则和路径匹配器
在主机和路径规则中,您可以保留默认设置。
如需查看自定义设置示例,请参阅将后端存储分区添加到负载平衡器。
如需详细了解主机规则和路径匹配器,请参阅网址映射概览。
配置前端
点击前端配置。
验证下表中的选项配置了这些值。
属性
值(输入值或选择指定的选项)
协议
HTTP
网络服务层
高级
IP 版本
IPv4
IP 地址
example-ip
端口
80
如果您希望创建 HTTPS 负载平衡器而不是 HTTP 负载平衡器,您必须拥有 SSL 证书 (
gcloud compute ssl-certificates list
),并且必须按如下所示填写相关字段。属性
值(输入值或选择指定的选项)
协议
HTTPS
网络服务层
高级
IP 版本
IPv4
IP 地址
example-ip
端口
443
证书
选择证书或创建新证书
点击完成。
检查配置
点击检查并最终确定。
检查后端存储分区、主机和路径规则和前端部分。
点击创建。
等待负载平衡器完成创建。
点击负载平衡器的名称 (http-lb)。
请记下负载平衡器的 IP 地址,以便在下一个任务中使用。它被称为
IP_ADDRESS
。
向后端存储分区发送流量
创建全局转发规则后,您的配置可能需要几分钟时间才能传播到全球范围。几分钟后,您就可以开始将流量发送到负载平衡器的 IP 地址。控制台gcloud
在 Google Cloud Console 中,转到负载平衡页面。
点击
http-lb
,展开您刚创建的负载平衡器。在后端部分中,确认后端存储分区运行状况良好。 您的后端存储分区旁边应该有一个绿色选中标记。否则,请先尝试重新加载页面。Cloud Console 可能需要一段时间才能指示后端状况良好。
在 Cloud Console 显示后端存储分区运行状况良好后,您可以使用网络浏览器转到
http://IP_ADDRESS/static/us/three-cats.jpg
来测试您的负载平衡器。将IP_ADDRESS
替换为负载平衡器的 IP 地址。您的浏览器应该会打开一个页面,其中包含呈现图形文件的内容。
验证 Cloud CDN 是否正常运行
如果您连续多次重新加载 http://ip-address/static/us/three-cats.jpg
页面,则应该有多次缓存命中。
以下日志条目显示了缓存命中。您可以通过在 Google Cloud Console 中打开日志查看器并按转发规则名称进行过滤来查看缓存命中。
打开日志查看器注意:如果在设置负载平衡器时未指定转发规则名称,则转发规则名称为负载平衡器名称,再加上 -forwarding-rule
。在此示例中为 http-lb-forwarding-rule
。日志查看器
停用 Cloud CDN
为单个后端存储分区停用 Cloud CDN
在 Google Cloud Console 中,转到 Cloud CDN 页面。
在源站所在行的右侧,点击菜单 more_vert,然后选择修改。
取消选中您想要停止使用 Cloud CDN 的所有后端存储分区的复选框。
点击更新。
为某个源站的所有后端存储分区移除 Cloud CDN
在 Cloud Console 中,转到 Cloud CDN 页面。
在源站所在行的右侧,点击菜单 more_vert,然后选择移除。
点击移除进行确认。
停用 Cloud CDN 后,系统不会使缓存失效或完全清除缓存。如果您关闭 Cloud CDN,然后重新开启 Cloud CDN,则大部分或所有缓存的内容仍可能会被缓存。为了防止缓存使用内容,您必须使该内容失效。
后续步骤
如需了解缓存的内容,请参阅缓存概览。
如需在 GKE 中使用 Cloud CDN,请参阅 Ingress 功能。
如需检查 Cloud CDN 是否正在从缓存传送响应,请参阅查看日志。
如需了解常见问题及解决方案,请参阅问题排查。
Last updated