文档首页/ 内容分发网络 CDN/ API参考/ API/ 域名配置/ 全量更新规则引擎规则
更新时间:2025-08-19 GMT+08:00
分享

全量更新规则引擎规则

功能介绍

全量更新规则引擎规则。

调用方法

请参见如何调用API

URI

POST /v1.0/cdn/configuration/domains/{domain_name}/rules/full-update

表1 路径参数

参数

是否必选

参数类型

描述

domain_name

String

参数解释:

加速域名

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

rules

Array of CreateRuleRequest objects

参数解释:

规则配置内容,可以配置多个规则

约束限制:

不涉及

表3 CreateRuleRequest

参数

是否必选

参数类型

描述

name

String

参数解释:

规则名称

约束限制:

不涉及

取值范围:

1-50个字符

默认取值:

不涉及

status

String

参数解释:

是否开启规则

约束限制:

不涉及

取值范围:

  • on: 开启

  • off: 关闭

默认取值:

不涉及

priority

Integer

参数解释:

规则的优先级,数值越大,优先级越高

约束限制:

优先级不能重复

取值范围:

1-100

默认取值:

不涉及

conditions

Conditions object

参数解释:

触发当前规则的条件

约束限制:

不涉及

actions

Array of Actions objects

参数解释:

满足规则条件后执行的动作

约束限制:

不涉及

表4 Conditions

参数

是否必选

参数类型

描述

match

Match object

参数解释:

规则匹配条件

约束限制:

不涉及

表5 Match

参数

是否必选

参数类型

描述

logic

String

参数解释:

逻辑运算符

约束限制:

不涉及

取值范围:

  • and: 与关系

  • or: 或关系

默认取值:

不涉及

criteria

Array of Criteria objects

参数解释:

匹配条件列表

约束限制:

不涉及

表6 Criteria

参数

是否必选

参数类型

描述

match_target_type

String

参数解释:

匹配目标类型

约束限制:

不涉及

取值范围:

  • schema: 客户端请求使用的协议类型

  • method: 客户端请求IP使用的请求方法

  • path: 客户端请求URL路径

  • arg: 客户端请求URL中的查询参数

  • extension: 客户端请求IP内容的文件后缀

  • filename: 客户端请求IP内容的文件名称

  • header: HTTP请求头部

  • clientip: 客户端请求IP的客户端IP

  • clientip_version: 客户端请求IP的客户端IP版本

  • ua: 客户端请求IP头中的User-Agent

  • ngx_variable: Nginx变量

默认取值:

不涉及

match_target_name

String

参数解释:

匹配目标名称

约束限制:

不涉及

取值范围:

  • 当匹配目标类型为schema、method、path、extension、filename、ua时,该值为空

  • 当匹配目标类型为arg时表示查询参数名,长度1-100,由数字,大小写字母,中划线和下划线组成,只能以字母开头

  • 当匹配目标类型为header时表示请求头的名称,长度1-100,由数字,大小写字母,中划线和下划线组成,只能以字母开头

  • 当匹配目标类型为clientip时表示ip来源,取值:connect:建联IP;xff:x-forwarded-for头

  • 当匹配目标类型为clientip_version时表示ip版本来源,取值:connect:建联IP;xff:x-forwarded-for头

  • 当匹配目标类型为ngx_variable时表示Nginx变量名,仅支持$protocol、$arg_、$http_、$scheme、$uri、$ssl_protocol、$ssl_server_name、$remote_addr、$http2、$request_method、$sent_http_

默认取值:

不涉及

match_type

String

参数解释:

匹配算法

约束限制:

不涉及

取值范围:

contains:包含匹配,匹配到match_pattern任意一个条件即匹配成功

默认取值:

不涉及

match_pattern

Array of strings

参数解释:

匹配内容

约束限制:

不涉及

取值范围:

  • 当匹配目标类型为schema时,取值:HTTP,HTTPS

  • 当匹配目标类型为method时,取值:GET,PUT,POST,DELETE,HEAD,OPTIONS,PATCH,TRACE,CONNECT

  • 当匹配目标类型为clientip_version时,取值:IPv4,IPv6

  • 当匹配目标类型为path和ua时,支持配置通配符“*”

默认取值:

不涉及

negate

Boolean

参数解释:

是否取反,与match_type配合使用。例:negate配置为true,match_type配置为contains,则实际业务逻辑将转换为not_contains

约束限制:

不涉及

取值范围:

  • true: 取反

  • false: 不取反

默认取值:

false: 不取反

case_sensitive

Boolean

参数解释:

是否区分大小写

约束限制:

不涉及

取值范围:

  • true: 区分大小写

  • false: 不区分大小写

默认取值:

false: 不区分大小写

logic

String

参数解释:

嵌套条件逻辑运算符

约束限制:

不涉及

取值范围:

  • and: 与关系

  • or: 或关系

默认取值:

不涉及

criteria

Array of Criteria objects

参数解释:

嵌套条件列表

约束限制:

不涉及

表7 Actions

参数

是否必选

参数类型

描述

flexible_origin

Array of flexibleOriginsEngine objects

参数解释:

高级回源,实现根据不同的资源类型或路径回源到不同源站

约束限制:

最多配置20条

origin_request_header

Array of OriginRequestHeader objects

参数解释:

CDN节点回源时,改写用户回源请求URL的HTTP头部信息

约束限制:

  • 该功能将覆盖原有配置(清空之前的配置),在使用此接口时,请上传全量头部信息

  • 如果域名在后台配置了特殊请求头,需要将对应的请求头一并传入

http_response_header

Array of HttpResponseHeader objects

参数解释:

配置节点响应给客户端的头部信息,配置响应消息后,用户请求加速域名下的资源时,CDN返回给用户的消息中将包含该域名配置的响应头信息

约束限制:

  • 该功能将覆盖原有配置(清空之前的配置),在使用此接口时,请上传全量头部信息

  • 如果域名在后台配置了特殊请求头,需要将对应的请求头一并传入

access_control

AccessControl object

参数解释:

访问控制

约束限制:

不涉及

request_limit_rules

RequestLimitRulesEngine object

参数解释:

请求限速,将用户请求速度限制在指定范围内,一定程度上减少突发高带宽风险,节省成本

约束限制:

不涉及

origin_request_url_rewrite

OriginRequestUrlRewriteEngine object

参数解释:

改写回源URL

约束限制:

最多配置20条

cache_rule

CacheRulesEngine object

参数解释:

通过不同参数控制源站资源在CDN节点的缓存时长

约束限制:

不涉及

request_url_rewrite

RequestUrlRewriteEngine object

参数解释:

访问URL重写,当用户请求URL与CDN节点缓存资源的URL不一致时,可以通过访问URL重写功能重定向到目标URL

约束限制:

不涉及

browser_cache_rule

BrowserCacheRulesEngine object

参数解释:

浏览器缓存过期时间,当终端用户请求资源时,如果浏览器有缓存,直接返回给用户

约束限制:

不涉及

error_code_cache

ErrorCodeCacheEngine object

参数解释:

将源站返回的错误状态码缓存到CDN节点,用户再次请求时由CDN直接响应给用户错误状态码

约束限制:

不涉及

表8 flexibleOriginsEngine

参数

是否必选

参数类型

描述

sources_type

String

参数解释:

源站类型

约束限制:

不涉及

取值范围:

  • ipaddr: 源站IP

  • domain: 源站域名

  • obs_bucket: OBS桶域名

  • third_bucket: 第三方桶域名

默认取值:

不涉及

ip_or_domain

String

参数解释:

源站IP或者域名

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

obs_bucket_type

String

参数解释:

OBS桶类型

约束限制:

源站类型是“OBS桶域名”时需要传该参数

取值范围:

  • private: 私有桶

  • public: 公有桶

默认取值:

public: 公有桶

bucket_access_key

String

参数解释:

第三方对象存储访问密钥

约束限制:

源站类型为第三方桶时必填

取值范围:

不涉及

默认取值:

不涉及

bucket_secret_key

String

参数解释:

第三方对象存储密钥

约束限制:

源站类型为第三方桶时必填

取值范围:

不涉及

默认取值:

不涉及

bucket_region

String

参数解释:

第三方对象存储区域

约束限制:

源站类型为第三方桶时必填

取值范围:

不涉及

默认取值:

不涉及

bucket_name

String

参数解释:

第三方对象存储名称

约束限制:

源站类型为第三方桶时必填

取值范围:

不涉及

默认取值:

不涉及

host_name

String

参数解释:

回源HOST

约束限制:

不涉及

取值范围:

不涉及

默认取值:

加速域名

origin_protocol

String

参数解释:

指定CDN回源时的请求协议

约束限制:

不涉及

取值范围:

  • follow: 协议跟随

  • http: http协议

  • https: https协议

默认取值:

http: http协议

http_port

Integer

参数解释:

HTTP端口

约束限制:

不涉及

取值范围:

1-65535

默认取值:

80

https_port

Integer

参数解释:

HTTPS端口

约束限制:

不涉及

取值范围:

1-65535

默认取值:

443

priority

Integer

参数解释:

优先级,值越大优先级越高

约束限制:

不涉及

取值范围:

1-100

默认取值:

不涉及

weight

Integer

参数解释:

权重,值越大回源到该源站的次数越多。多个优先级相同的源站,由权重决定回源到各个源站的比例

约束限制:

不涉及

取值范围:

1-100

默认取值:

不涉及

表9 OriginRequestHeader

参数

是否必选

参数类型

描述

name

String

参数解释:

设置回源请求头参数

约束限制:

不涉及

取值范围:

  • 1-100个字符

  • 由数字,大小写字母,中划线组成

  • 只能以字母开头

默认取值:

不涉及

value

String

参数解释:

设置回源请求头参数的值

约束限制:

不涉及

取值范围:

  • 1-1000个字符

  • 由数字0 - 9、字符a - z、A - Z,及特殊符“.”、“-”、“_”、“*”、“#”、“!”、“&”、“+”、“|”、“^”、“~”、“'”、“"”、“/”、“:”、“;”、“,”、“=”、“@”、“?”、“<”、“>”组成

  • 当为删除动作时,可不填

  • 不支持中文

  • 不支持变量配置,如:$client_ip,$remote_port等

默认取值:

不涉及

action

String

参数解释:

回源请求头设置类型

约束限制:

  • 同一个请求头字段只允许删除或者设置

  • action为set时,若原回源请求头参数不存在该字段,则执行新增动作。若存在,则执行修改动作

取值范围:

  • delete: 删除

  • set: 设置

默认取值:

不涉及

表10 HttpResponseHeader

参数

是否必选

参数类型

描述

name

String

参数解释:

设置HTTP响应头参数

约束限制:

不涉及

取值范围:

  • 1-100个字符

  • 由数字,大小写字母,中划线组成,只能以字母开头

默认取值:

不涉及

value

String

参数解释:

设置HTTP响应头参数的值

约束限制:

不涉及

取值范围:

  • 1-1000个字符

  • 支持字母、数字和特定字符,如:.-_*#!&+|^~'"/:;,=@?<> 等

  • 当为删除动作时,可不填

默认取值:

不涉及

action

String

参数解释:

设置HTTP响应头操作类型

约束限制:

  • 同一个响应头字段只允许删除或者设置

  • action为set时,若原HTTP响应头参数不存在该字段,则执行新增动作。若存在,则执行修改动作

取值范围:

  • set: 设置

  • delete: 删除

默认取值:

不涉及

表11 AccessControl

参数

是否必选

参数类型

描述

type

String

参数解释:

访问控制类型

约束限制:

不涉及

取值范围:

  • block: 拒绝

  • trust: 允许

默认取值:

不涉及

表12 RequestLimitRulesEngine

参数

是否必选

参数类型

描述

limit_rate_after

Long

参数解释:

限速条件

说明:
例如:type=size,limit_rate_after=50表示从传输50个字节后开始限速且限速值为limit_rate_value

约束限制:

不涉及

取值范围:

0-1073741824,单位:byte

默认取值:

不涉及

limit_rate_value

Integer

参数解释:

限速值,即达到限速条件后的最大访问速度

约束限制:

不涉及

取值范围:

0-104857600,单位:Bps

默认取值:

不涉及

表13 OriginRequestUrlRewriteEngine

参数

是否必选

参数类型

描述

rewrite_type

String

参数解释:

改写方式

约束限制:

不涉及

取值范围:

  • simple: 精确改写

  • wildcard: 捕获改写

  • regex: 正则改写(白名单功能,请提交工单开放该配置)

默认取值:

不涉及

source_url

String

参数解释:

需要替换的URI

约束限制:

当rewrite_type为wildcard或regex时,该参数必填

当rewrite_type为regex时,该参数必填必须以“^/”开始,如:^/test

取值范围:

  • 1-512个字符

  • 支持通配符*匹配,如:/test/*/*.mp4

  • 以正斜线(/)开头的URI,不含http(s)://头及域名

默认取值:

不涉及

target_url

String

参数解释:

替换后的URI

约束限制:

取值范围:

  • 1-256个字符

  • 以正斜线(/)开头的URI,不含http(s)://头及域名

说明:
通配符 * 可通过$n捕获(n=1,2,3...,例如:/newtest/$1/$2.jpg)

默认取值:

不涉及

表14 CacheRulesEngine

参数

是否必选

参数类型

描述

ttl

Integer

参数解释:

资源在CDN节点的缓存过期时间

约束限制:

最大支持365天

取值范围:

不涉及

默认取值:

不涉及

ttl_unit

String

参数解释:

缓存过期时间单位

约束限制:

不涉及

取值范围:

  • s: 秒

  • m: 分

  • h: 小时

  • d: 天

默认取值:

不涉及

follow_origin

String

参数解释:

缓存过期时间来源,设置CDN节点的缓存遵循源站还是CDN侧的配置

约束限制:

不涉及

取值范围:

  • on: CDN节点的缓存过期时间遵循源站的设置

  • off: CDN节点的缓存过期时间遵循“缓存规则”中的“缓存过期时间”

  • min_ttl: CDN节点的缓存过期时间取缓存规则和源站二者的最小值

默认取值:

off: CDN节点的缓存过期时间遵循“缓存规则”中的“缓存过期时间”

force_cache

String

参数解释:

强制缓存:CDN节点缓存过期时间是否忽略源站响应头Cache-Control中的no-cache、private、no-store字段

约束限制:

强制缓存与缓存过期时间来源功能配合使用,具体使用限制及配置效果请参考CDN用户指南的配置节点缓存规则章节

取值范围:

  • on: 打开强制缓存

  • off: 关闭强制缓存

默认取值:

off: 关闭强制缓存

表15 RequestUrlRewriteEngine

参数

是否必选

参数类型

描述

redirect_status_code

Integer

参数解释:

重定向状态码

约束限制:

不涉及

取值范围:

  • 301

  • 302

  • 303

  • 307

默认取值:

不涉及

redirect_url

String

参数解释:

重定向URL

约束限制:

  • 重定向后的URL,以正斜线(/)开头,不含http://头及域名,如:/test/index.html

  • 当匹配类型为全路径时,"*"可以用“$1”捕获,例如:匹配内容为/test/*.jpg,重定向URL配置为/newtest/$1.jpg,则用户请求/test/11.jpg时,$1捕获11,重定向后请求的URL为/newtest/11.jpg

取值范围:

不涉及

默认取值:

不涉及

redirect_host

String

参数解释:

支持将客户端请求重定向到其他域名

约束限制:

不涉及

取值范围:

  • 1-255个字符

  • 必须以http://或https://开头

默认取值:

不填时默认为当前域名

execution_mode

String

参数解释:

执行规则

约束限制:

不涉及

取值范围:

  • redirect: 如果请求的URL匹配了当前规则,该请求将被重定向到目标Path。执行完当前规则后,当存在其他配置规则时,会继续匹配剩余规则

  • break: 如果请求的URL匹配了当前规则,请求将被改写为目标Path。执行完当前规则后,当存在其他配置规则时,将不再匹配剩余规则,此时不支持配置重定向Host和重定向状态码,返回状态码200

默认取值:

不涉及

表16 BrowserCacheRulesEngine

参数

是否必选

参数类型

描述

cache_type

String

参数解释:

缓存生效类型

约束限制:

不涉及

取值范围:

  • follow_origin: 遵循源站的缓存策略,即Cache-Control头部的设置

  • ttl: 浏览器缓存遵循当前规则设置的过期时间

  • never: 浏览器不缓存资源

默认取值:

不涉及

ttl

Integer

参数解释:

缓存过期时间

约束限制:

  • 最大支持365天

  • 当缓存生效类型为ttl时必填

取值范围:

不涉及

默认取值:

不涉及

ttl_unit

String

参数解释:

缓存过期时间单位

约束限制:

当缓存生效类型为ttl时必填

取值范围:

  • s:秒

  • m:分钟

  • h:小时

  • d:天

默认取值:

不涉及

表17 ErrorCodeCacheEngine

参数

是否必选

参数类型

描述

code

Integer

参数解释:

需要缓存的错误码

约束限制:

不涉及

取值范围:

  • 3xx: 301, 302

  • 4xx: 400, 403, 404, 405, 414

  • 5xx: 501, 502, 503, 504

默认取值:

不涉及

ttl

Integer

参数解释:

错误码缓存时间

约束限制:

不涉及

取值范围:

0-31536000,单位:秒

说明:
3XX状态码缓存时间范围为0-20s

默认取值:

不涉及

响应参数

状态码:204

请求成功

请求示例

POST /v1.0/cdn/configuration/domains/{domain_name}/rules/full-update

{
  "rules" : [ {
    "name" : "example",
    "status" : "on",
    "priority" : 1,
    "conditions" : {
      "match" : {
        "logic" : "and",
        "criteria" : [ {
          "match_target_type" : "scheme",
          "match_type" : "contains",
          "match_pattern" : [ "HTTP" ],
          "negate" : false,
          "case_sensitive" : false
        } ]
      }
    },
    "actions" : [ {
      "access_control" : {
        "type" : "block"
      }
    } ]
  } ]
}

响应示例

状态码

状态码

描述

204

请求成功

错误码

请参见错误码

相关文档