本文档介绍如何在火山引擎内容分发网络(CDN)中通过创建缓存键规则来配置缓存键。
缓存键是缓存中每个文件的唯一标识。通常情况下,缓存键包含用户请求 URL 中的 hostname、路径和查询参数。您可以对缓存键中的查询参数进行配置。
CDN 提供了缓存键配置的功能。您可以在控制台中创建缓存键规则。缓存键规则影响缓存命中率,因为 CDN 基于缓存键来匹配用户请求和已缓存的文件。
配置缓存键有以下两种方式:
说明
默认情况下,缓存键包含所有查询参数,但不包含任何 Cookie 和请求头。
在本文最后,我们提供了一个 配置示例 帮助您更好理解缓存键设置对于缓存命中的影响。
如果您站点上文件 URL 中的查询参数并不是用来区分文件的,您可以通过创建缓存键规则来指定 CDN 在生成的缓存键中需要丢弃的查询参数,以提高缓存命中率,减少回源请求。例如,URL 中包含了 auth 参数。其目的是用来验证用户的身份,不是用来区分文件。在这个情况下,该参数就无需包含在生成的缓存键中。
在您添加域名时,CDN 会默认为您添加一条缓存键值规则。该规则对所有文件的请求生效。您可以修改该规则的配置,但是无法删除该规则。在您添加其他缓存键值规则时,这条规则的优先级始终是最低的,其确保了任何请求都可以匹配到一条规则。
配置 | 说明 |
|---|---|
规则类型 | 表示规则中的过滤条件。该配置有以下选项:
|
忽略大小写匹配 | 表示 CDN 在查询缓存以及匹配请求时,规则内容 是否是大小写敏感的。 |
规则内容 | 表示规则中的过滤值。多个过滤值之间使用分号(;)分隔,总长度不能超过 1,024 个字符,不能包含以下字符:
CDN 在尝试将规则中的过滤条件与用户请求匹配时,匹配过程是大小写不敏感的。 另外,
|
参数设置 | 表示 CDN 在生成的缓存键中包含哪些请求 URL 中的查询参数。该配置的取值如下:
|
参数忽略大小写 | 表示 CDN 在查询缓存以及匹配请求时,参数名称 是否是大小写敏感的。该配置仅当 参数设置 是 删除指定参数 或者 保留指定参数 时有效。 例子:您指定保留的参数是 |
参数名称 | 表示需要保留或者丢弃的查询参数。参数名称可以包含字母、数字、中划线(-)、下划线(_)、句号(.)、逗号(,)、感叹号(!)。多个查询参数用英文分号(;)分隔。例如
该配置的默认值是 |
在规则列表中,每条规则都有优先级。优先级为 1 的规则具有最高优先级。当收到一个用户请求时,CDN 按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了一条规则,匹配过程就停止了。您可以拖动规则来调整优先级。需要留意的是,您无法调整那条预设规则的优先级。
version,token 这两个参数。version 是用来区分文件的。例如 /image.png?version=1 与 /image.png?version=2 是两个不同的文件。但是 /image.png?version=1&token=abc 与 /iamge.png?version=1&token=xyz 是相同的文件。https://<domain>/image.png?version=1&token=12345 和 https://<domain>/image.png?version=1&token=abcde。在收到第一个请求时,CDN 缓存该文件。该文件在缓存中的缓存键是 /image.png?version=1&token=12345。在收到第二个请求时,CDN 会使用 /image.png?version=1&token=abcde 去匹配缓存中的文件。由于没有命中缓存,CDN 会向源站请求该文件。