自定义缓存键

本页面介绍如何自定义 Cloud CDN 缓存键。

如果新请求开始使用与旧缓存键条目不同的缓存键,则更改缓存键配置后,可能会导致缓存命中率突然下降。同样,如果新请求使用与旧缓存键相同的键,则更改缓存键创建者后,并不一定会使缓存条目失效。要使现有缓存条目失效,请参阅使缓存内容失效

准备工作

本页面假定您了解 Cloud CDNCloud CDN 缓存键和具有负载平衡的后端服务。我们建议您在继续之前参阅这些页面。

启用 Cloud CDN 并自定义缓存键

以下操作说明为具有负载均衡的后端服务或存储桶激活 Cloud CDN,并通过排除一个或多个组件来自定义缓存键。如果您还没有用作源站的负载均衡器,请参阅外部应用负载均衡器文档,了解如何创建负载均衡器。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud CDN 页面。

    转到 Cloud CDN

  2. 点击添加来源
  3. 来源下拉菜单中,点击选择来源
  4. 选择要为其启用 CDN 的源站。
  5. 在源站所在的行中,点击配置

    如果已在此源站上启用 Cloud CDN,请先点击 菜单,选择修改,然后点击配置

  6. 取消选中您想要从此后端服务的缓存键中省略的任何字段的复选框。

  7. 点击保存

  8. 点击添加

gcloud

指定一个或多个可选标志,以便从该后端服务或后端存储桶的缓存键中排除该参数。

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-cdn
gcloud compute backend-buckets update BACKEND_BUCKET \
    --enable-cdn

可选标志:

  • --no-cache-key-include-protocol
  • --no-cache-key-include-host
  • --no-cache-key-include-query-string

更新缓存键以重新添加协议、主机和查询字符串

默认情况下,配置为使用 Cloud CDN 的后端服务会在缓存键中包含请求 URI 的所有组成部分。如果您之前已指明应排除一个或多个组成部分,则可以执行以下步骤来再次包含这些组成部分。

以下操作说明将协议、主机和查询字符串重新添加到已启用 CDN 的现有后端服务的缓存键中。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud CDN 页面。

    转到 Cloud CDN

  2. 在您的负载均衡器所在的行中,点击菜单 ,然后点击修改
  3. 在您要修改的后端服务或后端存储桶所在的行中,点击配置
  4. 缓存键下,选择自定义
  5. 选中协议主机查询字符串复选框。
  6. 查询字符串参数字段留空。
  7. 点击保存
  8. 点击更新

gcloud

如需仅重新添加一个组成部分,请单独指定该标志。任何未指定的标志都将保持不变。

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-protocol \
    --cache-key-include-host \
    --cache-key-include-query-string
gcloud compute backend-buckets update BACKEND_BUCKET \
    --cache-key-include-query-string

更新缓存键以使用查询字符串包含列表或排除列表

以下操作说明将 CDN 缓存键设置为使用查询字符串参数的包含列表或排除列表。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud CDN 页面。

    转到 Cloud CDN

  2. 在您的负载均衡器所在的行中,点击菜单 ,然后点击修改
  3. 在您要修改的后端服务所在的行中,点击配置
  4. 缓存键下,选择自定义
  5. 确认您已选中查询字符串复选框。
  6. 如果您想指定应包括在缓存键中的查询字符串参数,请选择仅包括所选项

    如果您想指定在缓存键中包括您列出的参数以外的所有查询字符串参数,请选择包括除所选项之外的所有项

  7. 查询字符串参数字段中输入字符串的英文逗号分隔列表。

  8. 点击保存

  9. 点击更新

gcloud

使用以下命令将字符串 user 设置为包含列表。

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-query-string \
    --cache-key-query-string-whitelist user

使用以下命令将字符串 user 添加到排除列表中。

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-query-string \
    --cache-key-query-string-blacklist user

更新缓存键以使用 HTTP 标头

以下指令集将 Cloud CDN 缓存键设置为使用 HTTP 标头。

控制台

Google Cloud 控制台目前不支持此功能。

gcloud

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-http-header=[HEADER_FIELD_NAME,...]
gcloud compute backend-buckets update BACKEND_BUCKET \
    --cache-key-include-http-header=[HEADER_FIELD_NAME,...]

更新缓存键以使用命名 Cookie

以下指令集将 Cloud CDN 缓存键设置为使用 HTTP Cookie。

控制台

Google Cloud 控制台目前不支持此功能。

gcloud

gcloud compute backend-services update BACKEND_SERVICE \
    --cache-key-include-named-cookie=[NAMED_COOKIE,...]

后续步骤

  • 如需检查 Cloud CDN 是否正在从缓存传送响应,请参阅查看日志