You need to enable JavaScript to run this app.
内容分发网络

内容分发网络

复制全文
规则引擎
最佳实践
复制全文
最佳实践

规则引擎提供了强大的灵活配置能力,以下是常见的应用场景及配置示例:

允许或拒绝特定客户端请求

根据客户端请求的特征(如请求头、客户端 IP、请求 URL、客户端所在地区等),制定黑白名单策略,并指定 CDN 的响应状态码。

配置示例

  • 条件(满足任意):
    • 请求路径 - 等于 - /test/(忽略大小写)
    • 请求参数 - myParam - 存在
    • Referer 请求头 - 等于 - http://www.example.com/(忽略大小写)
    • 客户端 IP - 匹配 - 198.51.100.25
    • UA 请求头 - 正则匹配 - .*test.*(忽略大小写)
  • 动作:拒绝访问 - HTTP状态码 403

Image

设置缓存策略

根据客户端请求的特征(如请求头、请求 URL、客户端所在地区等)设置不同的缓存时间。

配置示例

  • 条件(全部满足):
    • 请求路径 - 等于 - /test/(忽略大小写)
    • 请求参数 - myParam - 存在
    • Referer 请求头 - 等于 - http://www.example.com/(忽略大小写)
    • 客户端 IP - 匹配 - 198.51.100.25
    • UA 请求头 - 正则匹配 - .*test.*(忽略大小写)
  • 动作:节点缓存规则 - 缓存策略 CDN缓存,强制缓存 false,缓存时间 30 秒,Set-Cookie不缓存 false

Image
您还可以实现特定的缓存需求,例如让 CDN 对 OPTIONS 请求直接响应 200 状态码。

配置示例

  • 条件:请求方法 - 等于 - OPTIONS
  • 动作:拒绝访问 - HTTP状态码 200

Image

对特定客户端请求限速

根据客户端请求的特征(如请求 URL 中的参数、客户端所在地区等)对请求进行限速。

配置示例

  • 条件:请求参数 - myParam - 存在
  • 动作:下载限速 - 限速值 300 B/s,不限速部分 10 KB

Image

对跨域请求设置校验策略

您可以实现复杂的跨域资源共享(CORS)策略。例如,除了标准的 HTTP/HTTPS 请求外,您还可以还允许来自微信小程序的跨域请求,并根据请求中的 Origin 头部动态设置 Access-Control-Allow-Origin 响应头。

配置示例

  • 主规则条件:全站(以星号*)
  • 主规则动作:HTTP 响应头设置 - 操作 删除,响应头名称 Access-Control-Allow-Origin
  • 子规则条件:Origin 请求头 - 正则匹配 - ^weapp://www.example.com^http://img.example.com.com(忽略大小写)
  • 子规则动作:HTTP 响应头设置 - 操作 设置,响应头名称 Access-Control-Allow-Origin,响应头值 ${http_origin}

Image

修改 Content-Disposition 响应头

您可以自定义浏览器下载时显示的文件名,并防止文件在下载过程中被劫持。

要实现此目的,您可以通过名为 filename 的查询参数、请求头或 Cookie 来传递文件的真实名称,然后将 Content-Disposition 响应头设置为 attachment;filename="${arg_filename}";filename*=utf-8''${arg_filename}

配置示例

  • 条件:请求参数 - filename - 存在
  • 动作:HTTP 响应头设置 - 操作 设置,响应头名称 Content-Disposition,响应头值 attachment;filename="${arg_filename}";filename*=utf-8''${arg_filename}

说明

  • 在本示例中,文件的真实名称通过查询参数传递。
  • filename*=utf-8''${arg_filename} 格式遵循 RFC 5987 规范。
  • filename="${arg_filename}"; 用于兼容某些旧版浏览器不支持 RFC 5987 的情况。需要留意的是,对于这些旧版浏览器,下载文件的名称可能会显示为乱码。

Image

为被拦截的请求自定义响应页面和状态码

当客户端请求由于访问控制配置拦截或限速等原因受阻时,CDN 会在 HTTP 响应中默认新增 X-Exception-Info 响应头来指示异常原因。各异常类型对应的具体响应信息,请参见下方的 X-Exception-Info 常见响应信息列表

通过规则引擎识别这些特定的响应头,您可以配合 HTTP 状态码改写自定义页面 动作,对拦截行为进行友好的定制处理。常见场景包括:

  • 场景 1:请求被限速时,转到自定义页面 当触发下载限速规则时,您可以通过识别响应头 X-Exception-Info: rate limit by download speed limit,并使用“自定义页面”动作将请求重定向到指定的提示页面(例如:https://www.example.com/rate-limit.html)。

    配置示例

    • 条件:HTTP 响应头 - X-Exception-Info - 等于 - rate limit by download speed limit(忽略大小写)
    • 动作:自定义页面 - 页面类型 自定义重定向页面,状态码 303,Location https://www.example.com/rate-limit.html
      Image
  • 场景 2:请求被 IP 黑名单拦截时,自定义状态码 当请求触发 IP 黑名单被拦截时,CDN 默认会返回特定的状态码。您可以通过识别响应头 X-Exception-Info: deny by ip access rule,并使用“HTTP 状态码改写”动作,将其修改为您业务期望的状态码(例如:404450)。

    配置示例

    • 条件:HTTP 响应头 - X-Exception-Info - 等于 - deny by ip access rule(忽略大小写)
    • 动作:HTTP 状态码改写 - 状态码 450
      Image

参考:X-Exception-Info 常见响应信息列表

异常类型

X-Exception-Info 响应信息

地域访问控制

deny by area access rule

禁用 HTTP Method

deny by method rule

IP 黑白名单

deny by ip access rule

Referer 黑白名单

deny by referer access rule

UA 黑白名单

deny by ua access rule

Origin 黑白名单

deny by origin access rule

自定义头部黑白名单

deny by customiza access rule

自定义拦截规则

deny by request block rule

URL 鉴权

deny by url auth

远程鉴权

deny by remote url auth

下载限速

rate limit by download speed limit

下载限速(规则引擎)

rate limit by rule engine

拒绝访问(规则引擎)

deny by rule engine

流量检测-限速

rate limit by flow detection

流量检测-拦截

deny by flow detection

流量检测(高危 IP 情报库)

deny by flow detection (high risk IP)

最近更新时间:2026.03.24 12:02:05
这个页面对您有帮助吗?
有用
有用
无用
无用