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