本页面介绍如何自定义 Cloud CDN 缓存键。
如果新请求开始使用与旧缓存键条目不同的缓存键,则更改缓存键配置后,可能会导致缓存命中率突然下降。同样,如果新请求使用与旧缓存键相同的键,则更改缓存键创建者后,并不一定会使缓存条目失效。要使现有缓存条目失效,请参阅使缓存内容失效。
准备工作
本页面假定您了解 Cloud CDN、Cloud CDN 缓存键和具有负载平衡的后端服务。我们建议您在继续之前参阅这些页面。
启用 Cloud CDN 并自定义缓存键
以下操作说明为具有负载均衡的后端服务激活 Cloud CDN,并通过排除一个或多个组件来自定义缓存键。如果您还没有用作源站的负载均衡器,请参阅外部应用负载均衡器文档,了解如何创建负载均衡器。
后端存储桶不在缓存键中包含协议或主机,因为它们不会影响对象在 Cloud Storage 存储桶中的引用方式。不过,它们包含一组特定于 Cloud Storage 的查询字符串参数,这些参数可能会影响响应,并且可以通过可自定义的参数名称列表进行扩展。
控制台
- 在 Google Cloud 控制台中,转到 Cloud CDN 页面。
- 点击添加来源。
- 在来源下拉菜单中,点击选择来源。
- 选择要为其启用 CDN 的源站。
在源站所在的行中,点击配置。
如果已在此源站上启用 Cloud CDN,请先点击
菜单,选择修改,然后点击配置。取消选中您想要从此后端服务的缓存键中省略的任何字段的复选框。
点击保存。
点击添加。
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 的所有组成部分。如果您之前已指明应排除一个或多个组成部分,则可以执行以下步骤来再次包含这些组成部分。
以下操作说明将协议、主机和查询字符串重新添加到已启用 Cloud CDN 的现有后端服务的缓存键中。
控制台
- 在 Google Cloud 控制台中,转到 Cloud CDN 页面。
- 在您的负载均衡器所在的行中,点击菜单 ,然后点击修改。
- 在您要修改的后端服务或后端存储桶所在的行中,点击配置。
- 在缓存键下,选择自定义。
- 选中协议、主机和查询字符串复选框。
- 将查询字符串参数字段留空。
- 点击保存。
- 点击更新。
gcloud
如需仅重新添加一个组成部分,请单独指定该标志。任何未指定的标志都将保持不变。
gcloud compute backend-services update BACKEND_SERVICE \ --cache-key-include-protocol \ --cache-key-include-host \ --cache-key-include-query-string
更新缓存键以使用查询字符串参数包含列表或排除列表
以下说明将 Cloud CDN 缓存键设置为使用查询字符串参数的包含列表或排除列表。
控制台
- 在 Google Cloud 控制台中,转到 Cloud CDN 页面。
- 在您的负载均衡器所在的行中,点击菜单 ,然后点击修改。
- 在您要修改的后端服务所在的行中,点击配置。
- 在缓存键下,选择自定义。
- 确认您已选中查询字符串复选框。
如果您想指定应包括在缓存键中的查询字符串参数,请选择仅包括所选项。
如果您想指定在缓存键中包括您列出的参数以外的所有查询字符串参数,请选择包括除所选项之外的所有项。
在查询字符串参数字段中输入字符串的英文逗号分隔列表。
点击保存。
点击更新。
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
使用此命令将查询字符串参数 user
设置为后端存储桶的包含列表。
gcloud compute backend-buckets update BACKEND_BUCKET \ --cache-key-query-string-whitelist 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 传送的是否为缓存中的响应,请参阅缓存的日志和指标。