You need to enable JavaScript to run this app.
导航

配置缓存键值

最近更新时间2024.02.29 20:50:10

首次发布时间2022.02.09 10:17:09

本文档介绍如何在火山引擎内容分发网络中通过创建缓存键规则来配置缓存键。

缓存键

缓存键是每个在缓存中的文件的唯一标识。在收到一个用户请求时,内容分发网络会对请求生成一个缓存键。通常情况下,缓存键包含 host,路径和查询字符串。例如,www.example.com/image.png?version=1。然后,内容分发网络会尝试将该缓存键与缓存文件的缓存键相匹配。需要留意的是,缓存键的匹配过程是大小写敏感的。

  • 如果找到一个匹配,则表示缓存命中。在这个情况下,内容分发网络将缓存的文件发送给用户。
  • 如果未找到匹配,则表示缓存未命中。在这个情况下,内容分发网络会向源站请求该文件。在收到该文件后,内容分发网络会使用该缓存键来缓存文件。

缓存键配置

内容分发网络提供了缓存键配置的功能。您可以在控制台中创建缓存键规则。该功能的目的是指示内容分发网络在对请求的文件生成缓存键时,缓存键中包含哪些请求 URL 中的查询参数。由于生成的缓存键会被内容分发网络用来匹配缓存的文件,因此缓存键规则会直接影响缓存命中率。

在本文最后,我们提供了一个配置示例帮助您更好理解缓存键设置对于缓存命中的影响。

使用场景

如果您站点上文件 URL 中的查询参数并不是用来区分文件的,您可以通过创建缓存键规则来指定内容分发网络在生成的缓存键中需要丢弃的查询参数,以提高缓存命中率,减少回源请求。例如,URL 中包含了 auth 参数。其目的是用来验证用户的身份,不是用来区分文件。在这个情况下,该参数就无需包含在生成的缓存键中。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
    页面上方的筛选条件和搜索框可以帮助您快速找到要配置的域名。
  4. 在域名页面上,点击 缓存配置 页签。
  5. 在页面右上方,点击 编辑配置
  6. 缓存键值 下方,点击 添加缓存键值规则
  7. 根据配置说明进行设置。
  8. 配置完成后,在页面右上方,点击 提交编辑

alt

关于预设缓存键值规则

在您添加域名时,内容分发网络会默认为您添加一条缓存键值规则。该规则对所有文件的请求生效。您可以修改该规则的配置,但是无法删除该规则。在您添加其他缓存键值规则时,这条规则的优先级始终是最低的,其确保了任何请求都可以匹配到一条规则。

alt

配置说明

配置说明
优先级表示规则的优先级。数字 1 的规则优先级最高。在收到请求时,内容分发网络按规则的优先级,从高到低尝试将请求与规则匹配。如果请求匹配了某一条规则,内容分发网络就停止匹配其余规则。您可以通过拖拽调整规则的优先级。需要留意的是,您无法调整那条预设规则的优先级。

规则类型

表示一个规则匹配条件。该配置有以下选项:

  • 文件后缀:规则应用于特定后缀名的所有文件。
  • 目录:规则应用于特定目录下的所有文件。
  • 文件全路径:规则应用于特定文件。

规则

表示规则的内容,长度不能超过 1,024 个字符,不能包含以下字符:

  • 连续斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。

同时,

  • 如果规则类型是 文件后缀,规则内容必须是一个或者多个以分号(;)分隔的文件后缀。文件后缀无需以句点(.)开头。例如:png;txt

  • 如果规则类型是 目录,规则内容必须是一个或者多个以分号(;)分隔的目录路径。目录路径必须以斜杠(/)开头和结尾。例如:/chs/foods/;/us/birds/

  • 如果规则类型是 文件全路径,规则内容必须是一个或者多个以分号(;)分隔的文件路径。文件路径必须以斜杠(/)开头,可以包含星号(*)用来表示一个或者多个字符。例如:/chs/foods/local*sets;/us/birds/chickadee

参数缓存类型

指定内容分发网络在生成的缓存键中包含哪些请求 URL 中的查询参数。该配置的取值如下:

  • 保留全部参数:包含请求 URL 中全部的查询参数。
  • 删除全部参数:不包含任何的查询参数。
  • 删除部分参数:包含除了指定参数以外全部的查询参数。
  • 保留部分参数:包含指定的查询参数。

指定参数

指定需要保留或者丢弃的查询参数。多个查询参数用英文分号(;)分隔。例如 version;size

  • 如果 参数缓存类型保留全部参数 或者 删除全部参数,该配置的值必须是 ** 表示全部查询参数。

  • 如果 参数缓存类型删除部分参数 或者 保留部分参数,您可以指定一个或者多个查询参数,但是您不能指定 *。同时,您指定的查询参数不能包含连续斜杠(//)、百分号(%)、空格。

该配置的默认值是 *

忽略大小写

表示 指定参数 是否区分大小写。该参数仅当 参数缓存类型删除部分参数 或者 保留部分参数 时有效。

例子:您指定保留的参数是 size忽略大小写开启。然后,内容分发网络收到了一个 URL 包含 SIZE 参数的请求。在这个情况下,内容分发网络会在生成的缓存键中保留 SIZE 参数。

说明

当内容分发网络尝试将请求匹配缓存文件时,匹配始终是大小写敏感的。

更多信息

配置示例

  • 您站点根目录下的文件 URL 中包含 versiontoken 这两个参数。

  • 这两个参数中,只有 version 是用来区分文件的。例如 /image.png?version=1/image.png?version=2 是两个不同的文件。但是 /image.png?version=1&token=abc/iamge.png?version=1&token=xyz 是相同的文件。

  • 内容分发网络先后收到两个该文件的请求。请求 URL 分别是 https://<domain>/image.png?version=1&token=12345https://<domain>/image.png?version=1&token=abcde

未创建缓存键值规则的结果

在收到第一个请求时,内容分发网络缓存该文件。该文件在缓存中的缓存键是 /image.png?version=1&token=12345。在收到第二个请求时,内容分发网络会使用 /image.png?version=1&token=abcde 去匹配缓存中的文件。由于没有命中缓存,内容分发网络会向源站请求该文件。