使用后端存储分区设置 Cloud CDN

https://cloud.google.com/cdn/docs/setting-up-cdn-with-bucket?authuser=1

Cloud CDN 利用 Google Cloud 全球外部 HTTP(S) 负载平衡器来提供路由、运行状况检查和任播 IP 支持。由于全球外部 HTTP(S) 负载平衡器可以有多种后端实例类型arrow-up-right(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 存储分区的封装容器

后端存储分区支持以下功能:

如需了解 Cloud CDN 的工作原理,请参阅 Cloud CDN 概览arrow-up-right

负载平衡器后端

外部 HTTP(S) 负载平衡器使用网址映射将来自指定网址的流量定向到指定服务。下表汇总了您可以在其中托管内容和服务的后端类型。

负载平衡器后端配置

典型内容类型

后端类型

后端服务

动态(如数据)

  • 非托管实例组

  • 托管实例组

  • Google Cloud 内部的网络端点组

  • Google Cloud 外部的网络端点组

后端存储分区

静态(如映像)

  • Cloud Storage 存储分区(在本页中讨论)

准备工作

创建 Cloud Storage 存储分区

如果您已有尚未分配给负载平衡器的 Cloud Storage 存储分区,则可以跳至下一步arrow-up-right

创建 Cloud Storage 存储分区以用作使用 Cloud CDN 的外部 HTTP(S) 负载平衡器的后端时,我们建议您选择一个多区域存储分区arrow-up-right,它会自动跨多个 Google Cloud 区域复制对象。这可以提高内容的可用性,并提高应用的故障容忍度。控制台arrow-up-rightgsutilarrow-up-right

  1. 在 Google Cloud Console 中打开 Cloud Storage 浏览器

    打开 Storage 浏览器arrow-up-right

  2. 点击创建存储分区

  3. 为下表中的字段指定值,其他所有字段保留默认值:

    属性

    值(输入值或选择指定的选项)

    名称

    为每个存储分区输入一个全局唯一的名称。如果您输入的名称不是唯一的,则会看到一条消息,提示您尝试使用其他名称。

    位置类型

    多区域

    位置

    选择一个区域,例如 us(美国的多个区域)

    默认存储类别

    标准

    访问控制

    统一

  4. 点击创建

  5. 记下新创建的 Cloud Storage 存储分区的名称,以进行下一步。

将图形文件复制到 Cloud Storage 存储分区

要使您能够测试设置,请将图形文件从公共 Cloud Storage 存储分区复制到自己的 Cloud Storage 存储分区。

  1. 在 Cloud Shell 中运行以下命令。将 BUCKET_NAME 替换为您的 Cloud Storage 存储分区的唯一名称:

  2. 在 Cloud Console 中,点击刷新,以验证图形文件已复制。

将 Cloud Storage 存储分区设为公开

此示例使您的 Cloud Storage 存储分区可供公开读取arrow-up-right。这是公开内容的推荐方法。如此设置时,互联网上的任何人都可以查看和列出您的对象及其元数据(不包括 ACL)。推荐做法是将特定 Cloud Storage 存储分区专用于公开对象。如需了解详情,请参阅建议的存储分区架构arrow-up-right重要提示:从公共 Cloud Storage 存储分区传送对象时,默认情况下arrow-up-right,对象应用了 Cache-Control: public, max-age=3600 响应标头。这样,您可以在启用 Cloud CDN 时缓存对象。

以下是将 Cloud Storage 存储分区设为公开的其他方法:

以下过程授予所有用户查看 Cloud Storage 存储分区中的对象的权限,使该存储分区可公开读取。控制台arrow-up-rightgsutilarrow-up-right

  1. 在 Google Cloud Console 中打开 Cloud Storage 浏览器

    打开 Storage 浏览器arrow-up-right

  2. 导航到该存储分区,然后点击权限标签页。

  3. 点击添加成员

  4. 新成员中输入 allUsers

  5. 对于角色,请选择 Cloud Storage > Storage Object Viewer

  6. 点击保存

预留外部 IP 地址

现在您的 Cloud Storage 存储分区已启动并正在运行,接下来请设置全局静态外部 IP 地址arrow-up-right,您的客户将使用此地址访问负载平衡器。

此步骤是可选的,但建议执行此操作,因为静态外部 IP 地址会提供单个地址以指向您的网域。注意:您可以跳过此步骤,让 Google Cloud 将临时 IP 地址与负载平衡器的转发规则相关联。转发规则存在时,临时 IP 地址保持不变。如果您需要删除转发规则并重新添加,则转发规则可能会收到新的 IP 地址。控制台arrow-up-rightgcloudarrow-up-right

  1. 在 Google Cloud Console 中,转到外部 IP 地址页面。

    转到“外部 IP 地址”页面arrow-up-right

  2. 如需预留 IPv4 地址,请点击预留静态地址

  3. 指定名称 example-ip

  4. 网络服务层级设置为优质

  5. IP 版本设置为 IPv4

  6. 类型设置为全局

  7. 点击保留

创建外部 HTTP(S) 负载平衡器

如果要创建 HTTPS 负载平衡器,您必须具有可添加到负载平衡器前端的 SSL 证书资源。如需了解详情,请参阅 SSL 证书概览arrow-up-right控制台arrow-up-right

开始外部 HTTP(S) 负载平衡器配置过程

  1. 在 Google Cloud Console 中,转到负载平衡页面。

    转到“负载平衡”页面arrow-up-right

  2. HTTP(S) 负载平衡下,点击开始配置

  3. 选择从互联网到我的虚拟机,然后点击继续

  4. 名称设置为 http-lb,然后转到下一步。

配置后端并启用 Cloud CDN

创建负载平衡器的后端存储分区,将其用作 Cloud Storage 存储分区的封装容器。创建或修改后端存储分区时,您可以启用 Cloud CDN。

  1. 点击后端配置

  2. 后端服务和后端存储分区下,点击创建或选择后端服务和后端存储分区,然后点击后端存储分区 > 创建后端存储分区

  3. 名称设置为 backend-bucket1。 此名称不需要是全局唯一的,并且可以与实际 Cloud Storage 存储分区的名称不同。

  4. Cloud Storage 存储分区下,点击浏览

  5. 选择您创建的 Cloud Storage 全局唯一 BUCKET_NAME,然后点击选择

  6. 点击启用 Cloud CDN重要提示:请确保您在此步骤中选择启用 Cloud CDN。忘记执行此操作会导致直接从 Cloud Storage 存储分区传送对象,而不是从 Google 的全球 CDN 缓存传送。

  7. 点击创建

配置主机规则和路径匹配器

主机和路径规则中,您可以保留默认设置。

如需查看自定义设置示例,请参阅将后端存储分区添加到负载平衡器arrow-up-right

如需详细了解主机规则和路径匹配器,请参阅网址映射概览arrow-up-right

配置前端

  1. 点击前端配置

  2. 验证下表中的选项配置了这些值。

    属性

    值(输入值或选择指定的选项)

    协议

    HTTP

    网络服务层

    高级

    IP 版本

    IPv4

    IP 地址

    example-ip

    端口

    80

    如果您希望创建 HTTPS 负载平衡器而不是 HTTP 负载平衡器,您必须拥有 SSL 证书arrow-up-right (gcloud compute ssl-certificates list),并且必须按如下所示填写相关字段。

    属性

    值(输入值或选择指定的选项)

    协议

    HTTPS

    网络服务层

    高级

    IP 版本

    IPv4

    IP 地址

    example-ip

    端口

    443

    证书

    选择证书创建新证书

  3. 点击完成

检查配置

  1. 点击检查并最终确定

  2. 检查后端存储分区主机和路径规则前端部分。

  3. 点击创建

  4. 等待负载平衡器完成创建。

  5. 点击负载平衡器的名称 (http-lb)。

  6. 请记下负载平衡器的 IP 地址,以便在下一个任务中使用。它被称为 IP_ADDRESS

向后端存储分区发送流量

创建全局转发规则后,您的配置可能需要几分钟时间才能传播到全球范围。几分钟后,您就可以开始将流量发送到负载平衡器的 IP 地址。控制台arrow-up-rightgcloudarrow-up-right

  1. 在 Google Cloud Console 中,转到负载平衡页面。

    转到“负载平衡”页面arrow-up-right

  2. 点击 http-lb,展开您刚创建的负载平衡器。

    后端部分中,确认后端存储分区运行状况良好。 您的后端存储分区旁边应该有一个绿色选中标记。否则,请先尝试重新加载页面。Cloud Console 可能需要一段时间才能指示后端状况良好。

  3. 在 Cloud Console 显示后端存储分区运行状况良好后,您可以使用网络浏览器转到 http://IP_ADDRESS/static/us/three-cats.jpg 来测试您的负载平衡器。将 IP_ADDRESS 替换为负载平衡器的 IP 地址arrow-up-right。您的浏览器应该会打开一个页面,其中包含呈现图形文件的内容。

验证 Cloud CDN 是否正常运行

如果您连续多次重新加载 http://ip-address/static/us/three-cats.jpg 页面,则应该有多次缓存命中。

以下日志条目显示了缓存命中。您可以通过在 Google Cloud Console 中打开日志查看器并按转发规则名称进行过滤来查看缓存命中。

打开日志查看器arrow-up-right注意:如果在设置负载平衡器时未指定转发规则名称,则转发规则名称为负载平衡器名称,再加上 -forwarding-rule。在此示例中为 http-lb-forwarding-rule日志查看器arrow-up-right

停用 Cloud CDN

控制台arrow-up-rightgcloudarrow-up-right

为单个后端存储分区停用 Cloud CDN

  1. 在 Google Cloud Console 中,转到 Cloud CDN 页面。

    转到 Cloud CDN 页面arrow-up-right

  2. 在源站所在行的右侧,点击菜单 more_vert,然后选择修改

  3. 取消选中您想要停止使用 Cloud CDN 的所有后端存储分区的复选框。

  4. 点击更新

为某个源站的所有后端存储分区移除 Cloud CDN

  1. 在 Cloud Console 中,转到 Cloud CDN 页面。

    转到 Cloud CDN 页面arrow-up-right

  2. 在源站所在行的右侧,点击菜单 more_vert,然后选择移除

  3. 点击移除进行确认。

停用 Cloud CDN 后,系统不会使缓存失效或完全清除缓存。如果您关闭 Cloud CDN,然后重新开启 Cloud CDN,则大部分或所有缓存的内容仍可能会被缓存。为了防止缓存使用内容,您必须使该内容失效arrow-up-right

后续步骤

Last updated