使用缓存键

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

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

准备工作

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

为后端服务启用 Cloud CDN 并自定义缓存键

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

控制台

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

    转到 Cloud CDN 页面

  2. 点击添加来源
  3. 来源下拉菜单中,点击选择来源
  4. 选择要为其启用 CDN 的源站。
  5. 在源站所在的行中,点击配置
  6. 取消选中您想要从此后端服务的缓存键中省略的任何字段的复选框。
  7. 点击保存
  8. 点击添加

gcloud

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

gcloud compute backend-services update BACKEND_SERVICE \
    --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 Console 中,转到 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

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

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

控制台

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

    转到 Cloud CDN 页面

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

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

  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

后续步骤

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