在规则引擎中,当客户端请求或源站响应满足您设定的匹配条件时,CDN 会执行相应的动作。本文详细介绍了规则引擎支持的所有动作类型、执行阶段及具体配置方法。
下表列出了所有可用的动作、动作的执行阶段和配置说明。
动作 | 动作执行阶段 | 配置说明 |
|---|---|---|
URL 重定向改写 | 客户端请求 | |
允许访问 | 允许符合条件的请求访问 CDN。 | |
协议强制跳转 | ||
下载限速 | ||
客户端请求头设置 | 在 CDN 处理客户端请求前,您可以新增、修改、或删除客户端请求中的 HTTP 头部。 | |
拒绝访问 | 阻止符合条件的请求访问 CDN。您同时需要指定拒绝访问放生时的 CDN 响应状态码,范围是 100-999。 | |
URL 鉴权 | 参见文档。在规则引擎中,您可以对各鉴权类型配置 "M3U8 改写"。 | |
缓存键值 | CDN 缓存 | 参见下方 缓存键值说明。 |
智能压缩 | ||
视频拖拽 | ||
节点缓存规则 | ||
HTTP 响应头设置 | 客户端响应 | |
浏览器缓存 | ||
HTTP 状态码改写 | 指定 CDN 的响应状态码,范围是 100-999。 | |
自定义页面 | ||
Range 回源 | 回源请求 | |
回源重定向跟随 | ||
回源 TCP 超时 | ||
回源 HTTP 超时 |
在 CDN 中,您可以通过以下两种方式配置缓存键:
说明
默认情况下,缓存键包含所有查询参数,但不包含任何 Cookie 和请求头。
以下是规则引擎中缓存键值的配置说明。
配置 | 说明 |
|---|---|
查询字符串 | 用于指定缓存键中需要包含请求 URL 中的哪些查询参数。该配置有以下选项:
您还可以指定参数名称是否区分大小写。例如,您指定保留的参数是 |
请求路径 | 用于改写缓存键中的文件路径。您需要指定 改写前路径 以及 改写后路径。改写前路径 是一个正则表达式。 |
HTTP 请求头 | 用于指定缓存键中包含哪些请求头。头部名称不区分大小写。您可以指定最多 30 个头部,多个头部之间以回车分隔。头部名称可以包含字母、数字、下划线(_)和连字符(-),长度不能超过 30 个字符。 说明 默认情况下,缓存键中不包含任何请求头。 |
Cookie | 用于指定缓存键中包含的 Cookie。通过指定 Cookie 的键(Key)来设置需要保留的 Cookie。该配置有以下选项:
说明 默认情况下,缓存键中不包含任何 Cookie。 |
缓存路径忽略大小写 | 用于指定缓存键中的文件路径是否区分大小写。 |

配置
改写示例
在以下两个动作的配置中,您可以使用变量来获取特定对象的值。
要在参数值中使用这些变量,使用的格式是 ${*变量*}。例如,您设置某个 HTTP 响应头的值为 my ${request_uri} is ${host}.
CDN 提供的变量列表如下。
变量名称 | 说明 | 示例 |
|---|---|---|
request_uri | 表示客户端请求 URL 中的路径和查询字符串(query string)。 |
|
raw_uri | 表示客户端请求 URL 中的路径。 |
|
host | 表示客户端请求中 host 头部的值。需要留意的是,CDN 在处理请求时可能会修改 |
|
http_host | 表示客户端请求中 host 头部的值。该头部值不会被 CDN 修改。 |
|
args | 表示客户端请求 URL 中的查询字符串。 |
|
query_string | 与 |
|
scheme | 表示客户端使用的协议。 |
|
remote_addr | 表示发起本次请求的客户端的 IP 地址。 |
|
msec | 表示 CDN 设置响应头的时间,格式是 Unix 时间戳,精确到毫秒。该时间戳接近首包的响应时间。 |
|
http_%s | 表示一个特定头部的值, |
|
arg_%s | 表示一个特定查询参数的值, |
|