调用BatchSetDcdnDomainConfigs可以实现域名的批量配置,本文为您介绍该API可以配置哪些功能及功能参数用法。
本文中介绍的功能均能够被以下接口引用BatchSetDcdnDomainConfigs、DescribeDcdnDomainConfigs、BatchDeleteDcdnDomainConfigs和DescribeDcdnUserDomainsByFunc。
调用BatchSetDcdnDomainConfigs可以实现域名的批量配置,并生成唯一的ConfigId,通过ConfigId可以实现对指定配置的更新和删除。具体使用方法,请参见ConfigId使用说明。
基本信息
dynamic
功能说明:DCDN相关配置,该功能详细介绍请参见控制台配置说明动静态加速规则。
功能ID(FunctionID/FuncId):46。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启动静态加速:
on:开启。
off:关闭。
on
static_route_type
String
否
静态加速文件后缀。
.txt
static_route_url
String
否
静态加速URI。
/domain/detail/log.txt
static_route_path
String
否
静态加速文件路径。
说明支持使用通配符星号(*)和问号(?)模糊搜索静态文件路径。星号(*)代替零个、单个或多个字符,问号(?)代替1个字符。
/abc/test/*
dynamic_route_origin
String
否
配置动态内容回源协议:
http:DCDN以HTTP协议请求源站。
https:DCDN以HTTPS协议请求源站。
follow(跟随客户端协议):当客户端以HTTP或HTTPS协议请求资源时,DCDN跟随客户端的协议请求源站。
follow-port(跟随源站端口):当客户端以HTTP或HTTPS协议请求资源时,DCDN跟随源站端口所属的协议请求源站。
说明dynamic_route_origin不配置时,默认取值为follow。
https
dynamic_route_round_robin
String
否
是否开启负载均衡开关:
on:开启。
off(默认):关闭。
off
partition_back_to_origin
String
否
是否开启中国内地和全球(不包含中国内地)分区回源开关:
on:开启。
off(默认):关闭。
off
dynamic_route_adapt_cache
String
否
是否开启自适应缓存开关:
on:开启。
off(默认):关闭。
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "static_route_type", "argValue": ".txt" }, { "argName": "static_route_url", "argValue": "/domain/detail/log.txt" },{ "argName": "static_route_path", "argValue": "/abc/test/*" }, { "argName": "dynamic_route_origin", "argValue": "https" }, { "argName": "dynamic_route_round_robin", "argValue": "off" }, { "argName": "dynamic_route_adapt_cache", "argValue": "off" }], "functionName": "dynamic" }], "DomainNames": "example.com" }
ipv6
功能说明:IPv6访问配置,该功能详细介绍请参见控制台配置说明开启IPv6协议。
功能ID(FunctionID/FuncId):194。
参数说明:
参数
类型
是否必选
描述
示例值
switch
String
是
是否开启IPv6访问:
on:开启。
off:关闭。
on
region
String
是
开启IPv6功能的地区,支持星号(*)。
说明星号(*)表示所有区域都开启IPv6(目前仅支持针对所有区域都开启IPv6,如果需要仅针对某个特定区域开启IPv6,请提交工单申请)。
不传该参数,表示默认所有区域都开启IPv6。
*
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "switch", "argValue": "on" }, { "argName": "region", "argValue": "*" }], "functionName": "ipv6" }], "DomainNames": "example.com" }
回源配置
set_req_host_header
功能说明:配置回源HOST,该功能详细介绍请参见控制台配置说明配置回源HOST。
功能ID(FunctionID/FuncId):18。
参数说明:
参数
类型
是否必选
描述
示例值
domain_name
String
是
回源HOST头内容。
example.com
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "domain_name", "argValue": "example.com" }], "functionName": "set_req_host_header" }], "DomainNames": "example.com" }
forward_scheme
功能说明:配置回源协议,该功能详细介绍请参见控制台配置说明配置静态协议跟随回源。
功能ID(FunctionID/FuncId):47。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启回源协议:
on:开启。
off:关闭。
on
scheme_origin
String
否
回源类型,取值:
http:DCDN以HTTP协议回源。
https:DCDN以HTTPS协议回源。
follow(跟随):客户端以HTTP或者HTTPS协议请求DCDN,DCDN跟随客户端的协议请求源站。
说明scheme_origin不配置时,默认取值为follow。
follow
scheme_origin_port
String
否
回源自定义端口,需要与scheme_origin参数搭配使用,取值:
scheme_origin取值为http时,只需要配置一个HTTP协议的回源端口,例如:80。
scheme_origin取值为https时,只需要配置一个HTTPS协议的回源端口,例如:443。
scheme_origin取值为follow时,需要同时配置HTTP协议和HTTPS协议的回源端口,中间用半角冒号(:)分隔,例如:80:443。
80:443
配置示例一:DCDN跟随客户端的请求协议回源,回源访问的端口为协议默认端口,即HTTP协议对应80端口,HTTPS协议对应443端口。
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "scheme_origin", "argValue": "follow" }], "functionName": "forward_scheme" }], "DomainNames": "example.com" }
配置示例二:DCDN跟随客户端的请求协议回源,回源访问的端口为自定义端口,HTTP协议对应8080端口,HTTPS协议对应4433端口。
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "scheme_origin", "argValue": "follow" }, { "argName": "scheme_origin_port", "argValue": "8080:4433" }], "functionName": "forward_scheme" }], "DomainNames": "example.com" }
l2_oss_key
功能说明:配置私有Bucket回源。注意,首次使用该功能时,需要进行默认权限策略的一键开启操作,开启后将会授予DCDN产品对您同账号下OSS产品的所有Bucket的只读访问权限。该功能详细介绍请参见控制台配置说明OSS私有Bucket回源。
功能ID(FunctionID/FuncId):85。
参数说明:
参数
类型
是否必选
描述
示例值
private_oss_auth
String
是
是否开启私有Bucket回源:
on:开启。
off:关闭。
功能开启以后,系统会自动配置STS安全令牌,配置更简单,但是仅支持DCDN域名回源到同一个阿里云账号下的OSS私有Bucket。关于STS安全令牌更多信息,请参见什么是STS。
on
perm_private_oss_tbl
String
否
永久安全令牌配置,配置格式是
access_id=123 access_secret=123abc
(中间用空格分隔)。配置了永久安全令牌以后,除了支持DCDN域名回源到同一个阿里云账号下的OSS私有Bucket,还支持DCDN域名回源到另外一个阿里云账号下的OSS私有Bucket。关于永久安全令牌更多信息,请参见创建AccessKey。
access_id=123 access_secret=123abc
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "private_oss_auth", "argValue": "on" },{ "argName": "perm_private_oss_tbl", "argValue": "access_id=123 access_secret=123abc" }], "functionName": "l2_oss_key" }], "DomainNames": "example.com" }
oss_key_list
功能说明:OSS回源私钥列表,可以配置一条或者多条规则,代表多个不同的OSS私有Bucket与对应的安全令牌。
功能ID(FunctionID/FuncId):183。
参数说明:
参数
类型
是否必选
描述
示例值
host
String
是
OSS Bucket 的完整地址。
example.oss-cn-hangzhou.aliyuncs.com
key
String
是
永久安全令牌配置,配置格式是
access_id=123 access_secret=123abc
(中间用空格分隔)。配置了永久安全令牌以后,除了支持DCDN域名回源到同一个阿里云账号下的OSS私有Bucket,还支持DCDN域名回源到其他阿里云账号下的OSS私有Bucket。关于永久安全令牌更多信息,请参见创建AccessKey。
access_id=123 access_secret=123abc
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "host", "argValue": "example.oss-cn-hangzhou.aliyuncs.com" },{ "argName": "key", "argValue": "access_id=123 access_secret=123abc" }], "functionName": "oss_key_list" }], "DomainNames": "example.com" }
https_origin_sni
功能说明:配置回源SNI,可以对指定源站设置指定的回源SNI,该功能详细介绍请参见控制台配置说明配置指定回源SNI。该功能详细介绍请参见控制台配置说明配置回源SNI。
功能ID(FunctionID/FuncId):114。
参数说明:
参数
类型
是否必选
描述
示例值
enabled
String
是
是否开启回源SNI功能:
on:开启。
off:关闭。
on
https_origin_sni
String
是
回源请求携带的SNI信息(即回源请求需要访问的源站地址)。
origin.example.com
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "https_origin_sni", "argValue": "origin.example.com" }, { "argName": "enabled", "argValue": "on" }], "functionName": "https_origin_sni" }], "DomainNames": "example.com" }
forward_timeout
功能说明:配置回源请求超时时间,该功能详细介绍请参见控制台配置说明回源请求超时时间。
功能ID(FunctionID/FuncId):124。
参数说明:
参数
类型
是否必选
描述
示例值
forward_timeout
Integer
是
请求超时时间,单位:秒。
说明建议设置时间小于100秒。
30
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "forward_timeout", "argValue": "30" }], "functionName": "forward_timeout" }], "DomainNames": "example.com" }
advanced_origin
功能说明:配置高级回源,该功能详细介绍请参见控制台配置说明高级回源。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能冲突说明:高级回源功能与条件源站功能(功能函数:origin_dns_host,功能ID:212)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):235。
参数说明:
参数
类型
是否必选
描述
示例值
variable_type
String
是
变量类型,取值:
header:用户请求中携带的header(request header)。
arg:用户请求URL中携带的参数(query string parameter)。
uri:用户请求URL中携带的路径(path)。
cookie:用户请求中携带的cookie(request cookie)。
uri
variable
String
是
变量名称。
说明variable_type=uri的情况下,variable只能固定=uri。
uri
conditions
String
是
条件,取值:
==:表示“等于”。
!=:表示“不等于”。
==
value
String
是
变量的取值。
/image
origin
String
是
回源查询DNS使用的域名(即用户请求中对应的变量值,匹配后需要回源到指定的源站地址)。
origin.example.com
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "conditions", "argValue": "==" }, { "argName": "variable_type", "argValue": "uri" }, { "argName": "value", "argValue": "/image" }, { "argName": "origin", "argValue": "origin.example.com" }, { "argName": "variable", "argValue": "uri" }], "functionName": "advanced_origin" }], "DomainNames": "example.com", }
follow_302
功能说明:配置回源302跟随,该功能详细介绍请参见控制台配置说明配置回源301/302跟随。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):219。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启回源302跟随:
on:开启。
off:关闭。
on
max_tries
Integer
否
302跟随次数上限。
默认值:2。
取值范围:[1,5]。
说明回源次数-1(次)=302跟随次数,即默认的回源次数上限为3,可配置范围是[2,6]。
2
retain_args
String
否
302跟随时是否保留原请求参数回目标源:
on:保留。
off(默认):不保留。
off
retain_header
String
否
302跟随时是否保留原请求头回目标源:
on:保留。
off(默认):不保留。
off
response_header
String
否
302跟随响应头,表示源站给DCDN的302跟随响应头的名称,该响应头名称默认为Location。
X-Alicdn-Redirect
retain_host
String
否
302跟随保留回源域名,当开启时,表示DCDN在302跟随时保留回源域名,只在跟随到目标域名时生效。可以配置的值为:
on:开启
off(默认):关闭
off
modify_host
String
否
302跟随修改回源域名,表示DCDN在302跟随时修改回源域名,只在跟随到目标域名时生效。默认不修改回源域名。
example.com
cache
String
否
302跟随缓存跟随结果,当开启时,表示DCDN在302跟随时缓存同URL的跟随结果,提升DCDN的响应性能。可以配置的值为:
on:开启
off(默认):关闭
off
expired_time
Integer
否
302跟随缓存跟随结果的超时时间,表示DCDN在302跟随时缓存同URL的跟随结果的超时时间,需要配合缓存功能一起使用,单位秒,默认:3600秒。
7200
follow_origin_host
String
否
302跟随回源host使用源站域名,当开启时,表示DCDN会使用源站域名作为回源host(即使主备切换也会使用最新的源站域名)。可以配置的值为:
on:开启
off(默认):关闭
off
follow_5xx_retry_origin
String
否
源站主备切换,当开启时,表示DCDN如果收到源站响应的5xx状态码,会切换到下一个可用的源站。可以配置的值为:
on:开启
off(默认):关闭
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "max_tries", "argValue": 2 }, { "argName": "retain_args", "argValue": "off" }, { "argName": "retain_header", "argValue": "off" }, { "argName": "response_header", "argValue": "X-Alicdn-Redirect" }, { "argName": "retain_host", "argValue": "off" }, { "argName": "modify_host", "argValue": "example.com" }, { "argName": "cache", "argValue": "off" }, { "argName": "expired_time", "argValue": "7200" }, { "argName": "follow_origin_host", "argValue": "off" }, { "argName": "follow_5xx_retry_origin", "argValue": "off" }], "functionName": "follow_302" }], "DomainNames": "example.com" }
set_req_header
功能说明:配置自定义回源HTTP头,该功能详细介绍请参见控制台配置说明配置自定义回源HTTP请求头。
说明set_req_header是v1版本,建议您使用v2版本:origin_request_header,v2版本支持更丰富的自定义回源HTTP头功能。
功能ID(FunctionID/FuncId):39。
参数说明:
参数
类型
是否必选
描述
示例值
key
String
是
回源头名称。
Accept-Encoding
value
String
是
回源头的值。如果要删除某个回源头,设置回源头的值为null。
gzip
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "value", "argValue": "gzip" }, { "argName": "key", "argValue": "Accept-Encoding" }], "functionName": "set_req_header" }], "DomainNames": "example.com" }
origin_request_header
功能说明:配置回源HTTP请求头(新),该功能详细介绍请参见控制台配置说明配置回源HTTP请求头,该功能当前需要加白名单以后才能使用。有需要请提交工单申请。
功能ID(FunctionID/FuncId):228。
参数说明:
参数
类型
是否必选
描述
示例值
header_operation_type
String
是
请求头操作,取值:
add:添加。
delete:删除。
modify:变更。
rewrite:替换。
add
header_name
String
是
请求头名称。
Accept-Encoding
header_value
String
否
请求头值。一个请求头参数中可以配置多个值,多个值用英文逗号(,)分隔。
gzip
duplicate
String
否
是否允许重复添加名称相同的请求头。当header_operation_type使用add时(即执行增加操作),需要设置是否允许重复:
on:允许。
off:不允许。
off
header_source
String
否
查找需要替换的参数值。当header_operation_type使用rewrite时(即执行替换操作),需要设置该参数,取值支持正则表达式。
value1
header_destination
String
否
替换后的参数值。当header_operation_type使用rewrite时(即执行替换操作),需要设置该参数。
value123
match_all
String
否
设置匹配模式。当header_operation_type使用rewrite时(即执行替换操作),需要设置匹配模式:
on:匹配所有(所有匹配上的值都会被替换)。
off:仅匹配第一个(只有第一个匹配上的值会被替换)。
off
配置示例:为加速域名
example.com
添加自定义回源请求头,请求头名称=Accept-Encoding,请求头值=gzip。{ "Functions": [{ "functionArgs": [{ "argName": "header_operation_type", "argValue": "add" }, { "argName": "header_name", "argValue": "Accept-Encoding" }, { "argName": "header_value", "argValue": "gzip" }, { "argName": "duplicate", "argValue": "off" }], "functionName": "origin_request_header" }], "DomainNames": "example.com" }
origin_response_header
功能说明:配置回源HTTP响应头,该功能详细介绍请参见控制台配置说明配置回源HTTP响应头。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):229。
参数说明:
参数
类型
是否必选
描述
示例值
header_operation_type
String
是
响应头操作,取值:
add:添加。
delete:删除。
modify:变更。
rewrite:替换。
add
header_name
String
是
响应头名称。
Cache-Control
header_value
String
否
响应头值。一个响应头参数中可以配置多个值,多个值用英文逗号(,)分隔。
no-cache
duplicate
String
否
是否允许重复添加名称相同的响应头。当header_operation_type使用add时(即执行增加操作),需要设置是否允许重复:
on:允许重复。
off:不允许重复。
off
header_source
String
否
查找需要替换的参数值。当header_operation_type使用rewrite时(即执行替换操作),需要设置该参数,取值支持正则表达式。
value1
header_destination
String
否
替换后的参数值。当header_operation_type使用rewrite时(即执行替换操作),需要设置该参数。
value123
match_all
String
否
匹配模式。当header_operation_type使用rewrite时(即执行替换操作),需要设置匹配模式:
on:匹配所有(所有匹配上的值都会被替换)。
off:仅匹配第一个(只有第一个匹配上的值会被替换)。
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "header_operation_type", "argValue": "add" }, { "argName": "header_name", "argValue": "Cache-Control" }, { "argName": "header_value", "argValue": "no-cache" }, { "argName": "duplicate", "argValue": "off" }], "functionName": "origin_response_header" }], "DomainNames": "example.com" }
back_to_origin_url_rewrite
功能说明:改写回源URI,该功能详细介绍请参见控制台配置说明改写回源URI。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):225。
参数说明:
参数
类型
是否必选
描述
示例值
source_url
String
是
被重写的URI。
^/hello$
target_url
String
是
重写的目标URI。
/hello/test
flag
String
否
改写操作的执行规则,取值:
空:执行完该条规则后,后续rewrite规则会继续执行。
break:执行完该条规则后,后续rewrite规则不再执行。
enhance_break:类似break,区别在于会带着参数一起进行处理,并且针对flv直播也会生效。
break
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "flag", "argValue": "break" }, { "argName": "source_url", "argValue": "^/hello$" }, { "argName": "target_url", "argValue": "/hello/test" }], "functionName": "back_to_origin_url_rewrite" }], "DomainNames": "example.com", }
back_to_origin_argument_rewrite
功能说明:改写回源参数,该功能详细介绍请参见控制台配置说明改写回源参数。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
说明回源参数改写,改写的是回源请求URL的查询参数,支持配置多个不同的改写规则,改写动作的优先级为添加参数>删除参数>仅保留>修改参数。当不同的改写规则作用于同一个参数时,只有高优先级的规则会生效。
功能ID(FunctionID/FuncId):224。
参数说明:
参数
类型
是否必选
描述
示例值
delete_argument
String
否
删除参数列表,多个参数用空格分隔。
code1
save_argument
String
否
保留参数列表,多个参数用空格隔开。仅保留列出的参数,添加参数和删除参数仍会生效。
空
ignore_all_argument
String
否
是否忽略所有参数:
on:忽略所有参数,除了添加参数功能仍能生效以外,删除参数、仅保留、修改参数功能都将失效。
off(默认):关闭忽略所有参数功能,保留参数、添加参数、删除参数仍会生效。
on
add_argument
String
否
添加参数,优先级最高,多个参数用空格隔开。
value=123
modify_argument
String
否
修改参数,优先级最低,若参数被删除则不会保留,多个参数用空格隔开。
value=321
enable
String
是
是否开启改写回源参数:
on:开启。
off:关闭 。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "delete_argument", "argValue": "" }, { "argName": "save_argument", "argValue": "" }, { "argName": "add_argument", "argValue": "" }, { "argName": "modify_argument", "argValue": "" }, { "argName": "ignore_all_argument", "argValue": "on" }, { "argName": "enable", "argValue": "on" }], "functionName": "back_to_origin_argument_rewrite" }], "DomainNames": "example.com" }
aws_s3_bucket
功能说明:配置Amazon S3鉴权Bucket,该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):186。
参数说明:
参数
类型
是否必选
描述
示例值
enabled
String
是
是否开启Amazon S3鉴权Bucket:
l2:开启。
off:关闭。
l2
bucketname
String
否
Amazon S3 Bucket名称。
/
accesskey
String
是
AWS AccessKey。
123456789
secretkey
String
是
AWS SecretKey。
12345678
region
String
是
Amazon S3存储区域。
us-east-2
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enabled", "argValue": "l2" }, { "argName": "accesskey", "argValue": "123456789" }, { "argName": "secretkey", "argValue": "123456789" }, { "argName": "region", "argValue": "us-east-2" }], "functionName": "aws_s3_bucket" }], "DomainNames": "example.com" }
origin_certificate_verification
功能说明:配置回源证书校验(SNI白名单),该功能详细介绍请参见控制台配置说明配置Common Name白名单。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):223。
参数说明:
参数
类型
是否必选
描述
示例值
enabled
String
是
是否启用回源证书校验:
on:启用。
off:关闭。
on
common_name_whitelist
String
否
证书白名单域名列表,支持配置多个域名,多个域名之间使用英文逗号(,)分隔。匹配了这些白名单域名的证书可以通过校验。
example.com
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "common_name_whitelist", "argValue": "example.com" }], "functionName": "origin_certificate_verification" }], "DomainNames": "example.com" }
origin_dns_host
功能说明:配置条件源站,可以通过与规则引擎功能(功能函数:condition,功能ID:250)配合使用,实现基于用户请求中的路径、URL参数、请求头等信息来回源到指定源站。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
前提条件:在添加条件源站配置之前,您需要至少先创建一条规则引擎的规则条件,在添加条件源站配置时,您必须配置一条关联的规则条件,具体请参见规则引擎。如果添加条件源站配置时没有关联规则条件,则会使DCDN回源的所有流量都指向这个唯一的源站地址(也就失去了通过规则条件来控制回源地址的意义)。
功能冲突说明:条件源站功能与高级回源功能(功能函数:advanced_origin,功能ID:235)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):212。
参数说明:
参数
类型
是否必选
描述
示例值
ali_origin_dns_host
String
是
回源查询DNS使用的域名。
example.com
配置示例:通过设置parentid来引用已经使用规则引擎功能(功能函数:condition,功能ID:250)创建好的某个规则条件(通过添加配置时生成的configid来引用),实现在用户请求命中这个规则条件的情况下,回源到指定的源站地址。
{ "Functions": [{ "functionArgs": [{ "argName": "ali_origin_dns_host", "argValue": "example.com" }], "functionName": "origin_dns_host", "parentId":30119730104**** }], "DomainNames": "example.com" }
origin_host
功能说明:配置指定源站回源HOST,可以对指定源站设置指定的回源HOST。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):242。
参数说明:
参数
类型
是否必选
描述
示例值
origin
String
是
指定源站地址(也可以不指定源站地址,不指定源站地址时,参数origin的值设置为all,代表所有源站)。
example.com
host
String
是
指定HOST(也可以不指定HOST,参数host的值设置为
ali_follow_origin
代表跟随源站地址作为host值)。host.example.com
配置示例一:用户请求回源到源站
example.com
时,使用的host值为host.example.com
。{ "Functions": [{ "functionArgs": [{ "argName": "origin", "argValue": "example.com" }, { "argName": "host", "argValue": "host.example.com" }], "functionName": "origin_host" }], "DomainNames": "example.com" }
配置示例二:用户回源到所有的源站(源站值用all来代表)都是用同一个host值
host.example.com
。{ "Functions": [{ "functionArgs": [{ "argName": "origin", "argValue": "all" }, { "argName": "host", "argValue": "host.example.com" }], "functionName": "origin_host" }], "DomainNames": "example.com" }
配置示例三:用户回源到所有的源站(源站值用all来代表)都跟随源站地址作为host值(用
ali_follow_origin
来表示)。{ "Functions": [{ "functionArgs": [{ "argName": "origin", "argValue": "all" }, { "argName": "host", "argValue": "ali_follow_origin" }], "functionName": "origin_host" }], "DomainNames": "example.com" }
ali_origin_port_scheme
功能说明:配置回源端口和协议。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):276。
参数说明:
参数
类型
是否必选
描述
示例值
port
String
是
回源端口。
说明当scheme设置为follow时,需填写
http:80|https:443
这样的格式。80
scheme
String
是
回源协议:自定义回源协议(支持http、https、follow、https_sm、follow_sm)。
http:按照HTTP协议回源。
https:按照HTTPS协议回源,采用国际算法。
follow:回源协议跟随(使用HTTPS协议回源时,仅支持国际算法)。
客户端采用HTTP协议,按照HTTP协议回源。
客户端采用HTTPS协议。
客户端为国际算法,按照HTTPS协议回源,采用国际算法。
客户端为国密算法,按照HTTPS协议回源,采用国际算法。
https_sm:按照HTTPS协议回源,采用国密算法。
follow_sm:回源协议跟随(使用HTTPS协议回源时,既支持国际算法,也支持国密算法)。
客户端采用HTTP协议,按照HTTP协议回源。
客户端采用HTTPS协议。
客户端为国际算法,按照HTTPS协议回源,采用国际算法。
客户算为国密算法,按照HTTPS协议回源,采用国密算法。
说明国际算法指的是国际标准的加密算法,国密算法指的是中国国家密码管理局认定的国产加密算法。
http
配置示例一:回源协议设置为http,回源端口设置为80。
{ "Functions": [{ "functionArgs": [{ "argName": "port", "argValue": "80" }, { "argName": "scheme", "argValue": "http" }], "functionName": "ali_origin_port_scheme" }], "DomainNames": "example.com" }
配置示例二:回源协议follow用户请求使用的协议,使用HTTP协议回源时,回源到源站的80端口,使用HTTPS协议回源时,回源到源站的443端口。
{ "Functions":[{ "functionArgs": [{ "argName": "port", "argValue": "http:80|https:443" }, { "argName": "scheme", "argValue": "follow" }], "functionName":"ali_origin_port_scheme" }], "DomainNames":"example.com" }
origin_sni
功能说明:配置指定源站回源SNI,可以对指定源站设置指定的回源SNI。该功能详细介绍请参见控制台配置说明配置指定回源SNI。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):262。
参数说明:
参数
类型
是否必选
描述
示例值
origin
String
是
源站地址(也可以不指定源站地址,不指定源站地址的时候,参数origin的值设置为all)。
example.com
sni_host
String
是
sni host值:
可以设置为固定值,例如:
example.org
。跟随源站地址作为sni,设置为
ali_follow_origin
。跟随回源host作为sni,设置为
ali_follow_host
。
example.org
keepalive_sni
String
否
是否开启长连接SNI匹配:
on:开启。
off:关闭。
说明开启后,不同回源SNI将使用不同长连接。
/
配置示例一:用户请求回源到源站
origin.example.com
时,使用的SNI值为host.example.com
。{ "Functions": [{ "functionArgs": [{ "argName": "origin", "argValue": "origin.example.com" }, { "argName": "sni_host", "argValue": "host.example.com" }], "functionName": "origin_sni" }], "DomainNames": "example.com" }
配置示例二:用户回源到所有的源站(源站值用
all
来表示)都使用同一个SNI值host.example.com
。{ "Functions": [{ "functionArgs": [{ "argName": "origin", "argValue": "all" }, { "argName": "sni_host", "argValue": "host.example.com" }], "functionName":"origin_sni" }], "DomainNames":"example.com" }
配置示例三:用户回源到所有的源站(源站值用
all
来表示)都跟随源站地址作为SNI值(使用参数值ali_follow_origin
来表示)。{ "Functions": [{ "functionArgs": [{ "argName": "origin", "argValue": "all" }, { "argName": "sni_host", "argValue": "ali_follow_origin" }], "functionName": "origin_sni" }], "DomainNames": "example.com" }
配置示例四:用户回源到所有的源站(源站值用
all
来表示)都跟随回源host作为SNI值(使用参数值ali_follow_host
来表示)。{ "Functions": [{ "functionArgs": [{ "argName": "origin", "argValue": "all" }, { "argName": "sni_host", "argValue": "ali_follow_host" }], "functionName": "origin_sni" }], "DomainNames": "example.com" }
source_group
功能说明:源站组设置。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):294。
参数说明:
参数
类型
是否必选
描述
示例值
source_group_name
String
是
源站组名称,支持小写英文字母、数字和下划线,最大长度不超过128个字节。
example_origin
source_info
String
是
源站信息,格式为源站地址_优先级_权重_端口,不同参数值之间用下划线分隔,多个源站之间用英文(,)逗号分隔。
源站地址:支持IPv4、IPv6、域名。
优先级:支持1~65535(值越小优先级越大)。
权重:支持1~100(DCDN回源的时候将按照源站权重来分配发送给不同源站的请求比例)。
端口:支持1~65535。
单个源站:192.168.0.1_10_33_80
多个源站:192.168.0.1_10_33_80,192.0.2.1_10_67_80
retry_times
Integer
否
回源重试次数。
3
retry_status_rule
Integer
否
回源重试状态码,目前仅支持配置以下五种:4xx、5xx、404、404-or-5xx、4xx-or-5xx,配置其中一个即可。
404-or-5xx
failback_source
String
否
备份使用基础源信息,取值:
on:在源站组内的所有源站都不可用的情况下,将会使用基本配置-源站信息里面的源站地址。
off:在源站组内的所有源站都不可用的情况下,将会直接给客户端返回表示源站不可用的5xx状态码。
on
说明回源重试逻辑:
重试次数:回源重试的次数。
回源重试只会在同一个源站组内的不同IP地址之间进行重试。
实际最大重试次数受限于同一个源站组内的可用IP数量。
如果不配置重试次数retry_times,默认重试次数是在3次和可用源站IP数之间取最小值。
如果配置重试次数retry_times,则在配置的重试次数和可用源站IP数之间取最小值。
重试状态码:节点在收到某种状态码的时候进行重试。
如果不配置重试状态码retry_status_rule,默认在源站响应5xx状态码的时候进行重试。
如果配置重试状态码retry_status_rule,将会按照配置的状态码进行故障转移重试。重试状态码目前仅支持配置以下五种:4xx、5xx、404、404-or-5xx、4xx-or-5xx,配置其中一个即可。
配置重试状态码retry_status_rule后,默认5xx状态码仍生效。例如配置了404,则DCDN节点收到404或者5xx的时候都会进行重试。
回源重试顺序:按照同一个源站组内IP地址的优先级从高到低进行重试。
回源超时场景:源站主动响应重试状态码的时候,DCDN节点收到重试状态码之后就会重试。如果没有收到源站主动响应的重试状态码,则会遵循超时时间处理流程,达到超时时间之后就会触发DCDNDCDN节点重试。
源站TCP建连超时:10秒。
源站写超时:30秒(源站建连后写入内容超时)。
源站读超时:30秒(源站建连后在一定时间内没有把DCDN节点请求的内容完整响应回去)。
源站探测逻辑:
四层连接异常:如果DCDN节点与某个源站IP四层连接失败,会把该源站IP放到一个dead table中,这样后续的回源请求就不会去访问这个源站IP;此后DCDN节点会每隔5秒四层探测一次该源站IP,如果建连成功,则将该源站IP恢复到可用列表中。
四层连接正常:如果DCDN节点与源站IP四层连接正常,但收到源站响应的重试状态码(例如:5xx),此时虽然会触发重试的逻辑,但该源站IP仍然还在可用列表中,下次访问还会按权重去请求该源站(即四层连接正常的情况下,七层异常不会主动屏蔽源站IP,如果需要主动屏蔽源站IP,则需要另外配置“回源7层监控检查”功能)。
配置示例:
{ "Functions":[{ "functionArgs":[{ "argName":"source_group_name", "argValue":"test_yidong" },{ "argName":"source_info", "argValue":"192.168.0.1_10_33_80,192.0.2.1_10_67_80" },{ "argName":"retry_times", "argValue":"3" },{ "argName":"retry_status_rule", "argValue":"404,502" },{ "argName":"failback_source", "argValue":"on" }], "functionName":"source_group" }], "DomainNames":"example.com" }
ipv6_origin
功能说明:配置IPv6回源,该功能详细介绍请参见控制台配置说明配置IPv6回源。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):265
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启IPv6回源功能。
on:开启。
off:关闭。
说明开启IPv6回源功能后,DCDN回源侧将提供IPv6服务。
DCDN节点和源站都具备可用的IPv6地址,则使用IPv6建连。
以下场景使用IPv4建连:
DCDN节点不具备可用的IPv6地址。
源站不具备可用的IPv6地址。
DCDN节点和源站都不具备可用的IPv6地址。
on
follow
String
是
是否开启回源跟随客户端IP协议版本功能。
on:开启。
off:关闭。
说明开启回源跟随客户端IP协议版本功能后,DCDN回源将会跟随客户端请求使用的IP协议版本。
客户端请求使用IPv6,则DCDN优先回源IPv6源站,如果没有IPv6源站,则使用IPv4源站。
客户端请求使用IPv4,则DCDN优先回源IPv4源站,如果没有IPv4源站,则使用IPv6源站。
on
ipv6_v4_mix_used
String
否
是否开启“源站IPv4地址/IPv6地址轮询”功能。
on:开启。
off:关闭。
说明“源站IPv4地址/IPv6地址轮询”功能与“IPv6回源”、“回源跟随客户端IP协议版本”这两个功能是互斥的,“回源v4/v6轮询”功能一旦开启,“IPv6回源”、“回源跟随客户端IP协议版本”这两个功能就会失效。
“源站IPv4地址/IPv6地址轮询”功能的作用是不论客户端请求使用的是IPv4还是IPv6,也不论源站有几个IPv4地址、几个IPv6地址,都会统一使用轮询方式回源到各个源站地址。
如果IPv4、IPv6地址配置了权重比例,那么还会按照权重比例回源。
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" },{ "argName": "follow", "argValue": "on" }], "functionName": "ipv6_origin" }], "DomainNames": "example.com" }
cos_auth
功能说明:配置腾讯云COS云存储的鉴权Bucket。该功能当前需要加白名单以后才能使用,有需要请提交工单申请。
功能ID(FunctionID/FuncId):288。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启腾讯云COS云存储鉴权Bucket:
on:开启。
off:关闭。
on
cos_valid_period
String
否
鉴权签名的有效时间,单位为秒,不填默认为3600秒。
/
cos_secret_id
String
是
腾讯云的鉴权ID。
123456789
cos_secret_key
String
是
腾讯云的鉴权密钥。
12345678
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "cos_secret_id", "argValue": "123456789" }, { "argName": "cos_secret_key", "argValue": "123456789" }], "functionName": "cos_auth" }], "DomainNames": "example.com" }
oss_auth
功能说明:用于配置DCDN回源OSS使用的鉴权bucket信息。
功能ID(FunctionID/FuncId):10。
注意事项:在给加速域名配置了OSS类型的源站地址之后,平台将会自动添加oss_auth配置,无需用户手动添加,也请用户注意不要误删该配置,否则会引起OSS源站无法实现对DCDN回源流量的计费减免,在开启OSS私有bucket鉴权的情况下,还会导致DCDN回源OSS私有bucket鉴权失败。
参数说明:
参数
类型
是否必选
描述
示例值
oss_bucket_id
String
是
OSS bucket的公网域名地址。
dcdn-test.oss-cn-hongkong.aliyuncs.com
oss_pri_buckets
String
是
OSS bucket的公网域名地址及其对应的bucket名称。
dcdn-test.oss-cn-hongkong.aliyuncs.com|dcdn-test
配置示例:
{ "Functions": [ { "ArgValue": "dcdn-test.oss-cn-hongkong.aliyuncs.com", "ArgName": "oss_bucket_id" }, { "ArgValue": "dcdn-test.oss-cn-hongkong.aliyuncs.com|dcdn-test", "ArgName": "oss_pri_buckets" } ], "functionName": "oss_auth" }], "DomainNames": "example.com" }
缓存配置
filetype_based_ttl_set
功能说明:配置文件过期时间,该功能详细介绍请参见控制台配置说明配置缓存过期时间。
功能ID(FunctionID/FuncId):6。
参数说明:
参数
类型
是否必选
描述
示例值
ttl
Integer
是
缓存时间,单位为秒,取值范围是1~99999999(3年多一些)。
500000
file_type
String
是
文件类型,区分大小写。多个文件类型用半角逗号(,)分隔。例如jpg,txt。
jpg
weight
Integer
否
权重。取值:1~99。
说明默认为1,数字越大优先级越高。
1
swift_origin_cache_high
String
否
源站响应缓存策略优先,当开启时,表示在源站响应缓存相关头(比如Cache-Control、Pragma等)的时候,源站的缓存策略优先生效。可以配置的值为:
on:开启
off(默认):关闭
off
swift_no_cache_low
String
否
忽略源站不缓存响应头,当开启时,表示忽略源站的以下响应头(均表示不缓存)。
Cache-Control: no-store
Cache-Control: no-cache
Cache-Control: max-age=0
Pragme: no-cache
可以配置的值为:
on:开启
off(默认):关闭
off
swift_follow_cachetime
String
否
客户端跟随DCDN缓存策略,当开启时,表示将最终生效的DCDN缓存策略响应给客户端。可以配置的值为:
on:开启
off(默认):关闭
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "file_type", "argValue": "jpg" }, { "argName": "weight", "argValue": "1" }, { "argName": "ttl", "argValue": "500000" }, { "argName": "swift_origin_cache_high", "argValue": "off" }, { "argName": "swift_no_cache_low", "argValue": "off" }, { "argName": "swift_follow_cachetime", "argValue": "off" }], "functionName": "filetype_based_ttl_set" }], "DomainNames": "example.com" }
path_based_ttl_set
功能说明:配置目录过期时间,该功能详细介绍请参见控制台配置说明配置缓存过期时间。
功能ID(FunctionID/FuncId):7。
参数说明:
参数
类型
是否必选
描述
示例值
ttl
Integer
是
缓存时间,单位为秒,取值范围是1~99999999(3年多一些)。
500000
path
String
是
目录,必须以正斜线(/)开头。
/example/demo
weight
Integer
否
权重。取值:1~99。
说明默认为1,数字越大优先级越高。
1
swift_origin_cache_high
String
否
源站响应缓存策略优先,当开启时,表示在源站响应缓存相关头(比如Cache-Control、Pragma等)的时候,源站的缓存策略优先生效。可以配置的值为:
on:开启
off(默认):关闭
off
swift_no_cache_low
String
否
忽略源站不缓存响应头,当开启时,表示忽略源站的以下响应头(均表示不缓存)。
Cache-Control: no-store
Cache-Control: no-cache
Cache-Control: max-age=0
Pragme: no-cache
可以配置的值为:
on:开启
off(默认):关闭
off
swift_follow_cachetime
String
否
客户端跟随DCDN缓存策略,当开启时,表示将最终生效的DCDN缓存策略响应给客户端。可以配置的值为:
on:开启
off(默认):关闭
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "path", "argValue": "/example/demo" }, { "argName": "weight", "argValue": "1" }, { "argName": "ttl", "argValue": "500000" }, { "argName": "swift_origin_cache_high", "argValue": "off" }, { "argName": "swift_no_cache_low", "argValue": "off" }, { "argName": "swift_follow_cachetime", "argValue": "off" }], "functionName": "path_based_ttl_set" }], "DomainNames": "example.com" }
filetype_force_ttl_code
功能说明:配置文件状态码过期时间,该功能详细介绍请参见控制台配置说明配置状态码过期时间。
功能ID(FunctionID/FuncId):63。
参数说明:
参数
类型
是否必选
描述
示例值
file_type
String
是
文件类型,区分大小写,多个用半角逗号(,)分隔,例如:jpg,txt。
jpg
code_string
String
是
状态码及其缓存时间,最长可设置3年,单位:秒,多个用半角逗号(,)分隔。例如:302=0,301=0,4xx=2。
403=10
swift_origin_cache_high
String
否
源站响应缓存策略优先,当开启时,表示在源站响应缓存相关头(比如Cache-Control、Pragma等)的时候,源站的缓存策略优先生效。可以配置的值为:
on:开启
off(默认):关闭
off
swift_no_cache_low
String
否
忽略源站不缓存响应头,当开启时,表示忽略源站的以下响应头(均表示不缓存)。
Cache-Control: no-store
Cache-Control: no-cache
Cache-Control: max-age=0
Pragme: no-cache
可以配置的值为:
on:开启
off(默认):关闭
off
swift_follow_cachetime
String
否
客户端跟随DCDN缓存策略,当开启时,表示将最终生效的DCDN缓存策略响应给客户端。可以配置的值为:
on:开启
off(默认):关闭
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "file_type", "argValue": "jpg" }, { "argName": "code_string", "argValue": "403=10" }, { "argName": "swift_origin_cache_high", "argValue": "off" }, { "argName": "swift_no_cache_low", "argValue": "off" }, { "argName": "swift_follow_cachetime", "argValue": "off" }], "functionName": "filetype_force_ttl_code" }], "DomainNames": "example.com" }
path_force_ttl_code
功能说明:配置路径状态码过期时间,该功能详细介绍请参见控制台配置说明配置状态码过期时间。
功能ID(FunctionID/FuncId):65。
参数说明:
参数
类型
是否必选
描述
示例值
path
String
是
目录,必须以正斜线(/)开头,例如:/image。
/example/demo
code_string
String
是
状态码及其缓存时间,单位为秒,取值范围是1~99999999(3年多一些),多个用半角逗号(,)分隔。例如:302=0,301=0,4xx=2。
403=10,404=15
swift_origin_cache_high
String
否
源站响应缓存策略优先,当开启时,表示在源站响应缓存相关头(比如Cache-Control、Pragma等)的时候,源站的缓存策略优先生效。可以配置的值为:
on:开启
off(默认):关闭
off
swift_no_cache_low
String
否
忽略源站不缓存响应头,当开启时,表示忽略源站的以下响应头(均表示不缓存)。
Cache-Control: no-store
Cache-Control: no-cache
Cache-Control: max-age=0
Pragme: no-cache
可以配置的值为:
on:开启
off(默认):关闭
off
swift_follow_cachetime
String
否
客户端跟随DCDN缓存策略,当开启时,表示将最终生效的DCDN缓存策略响应给客户端。可以配置的值为:
on:开启
off(默认):关闭
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "path", "argValue": "/example/demo" }, { "argName": "code_string", "argValue": "403=10,404=15" }, { "argName": "swift_origin_cache_high", "argValue": "off" }, { "argName": "swift_no_cache_low", "argValue": "off" }, { "argName": "swift_follow_cachetime", "argValue": "off" }], "functionName": "path_force_ttl_code" }], "DomainNames": "example.com" }
default_ttl_code
功能说明:配置状态码过期时间(源站优先)。
功能ID(FunctionID/FuncId):207。
参数说明:
参数
类型
是否必选
描述
示例值
default_ttl_code
String
是
状态码及其缓存时间,单位为秒,取值范围是1~99999999(3年多一些),多个状态码之间用半角逗号(,)分隔。
4xx=3,200=3600,5xx=1
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "default_ttl_code", "argValue": "4xx=3,200=3600,5xx=1" }], "functionName": "default_ttl_code" }], "DomainNames": "example.com" }
set_resp_header
功能说明:配置自定义HTTP响应头,该功能详细介绍请参见控制台配置说明配置HTTP响应头。
功能ID(FunctionID/FuncId):27。
参数说明:
参数
类型
是否必选
描述
示例值
key
String
是
响应头。
Cache-Control
value
String
是
响应头值,多个值之间用英文逗号(,)分隔。
说明如果要删除某个响应头,请设置响应头的值为null。
no-cache
header_operation_type
String
否
请求头操作,取值:
add:添加。
delete:删除。
modify:变更。
rewrite:替换。
add
duplicate
String
否
是否允许重复添加名称相同的请求头。当header_operation_type使用add时(即执行增加操作),需要设置是否允许重复:
on:允许重复。
off:不允许重复。
off
header_source
String
否
查找需要替换的参数值。当header_operation_type使用rewrite时(即执行替换操作),需要设置该参数,取值支持正则表达式。
value1
header_destination
String
否
替换后的参数值。当header_operation_type使用rewrite时(即执行替换操作),需要设置该参数。
value123
match_all
String
否
设置匹配模式。当header_operation_type使用rewrite时(即执行替换操作),需要设置匹配模式:
on:匹配所有(所有匹配上的值都会被替换)。
off:仅匹配第一个(只有第一个匹配上的值会被替换)。
/
access_origin_control
String
否
是否开启跨域访问:
on:开启DCDN节点对用户请求的跨域校验。
off:关闭该功能。
/
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "header_operation_type", "argValue": "add" }, { "argName": "key", "argValue": "Cache-Control" }, { "argName": "value", "argValue": "no-cache" }, { "argName": "duplicate", "argValue": "off" }], "functionName": "set_resp_header" }], "DomainNames": "example.com" }
error_page
功能说明:配置自定义页面,该功能详细介绍请参见控制台配置说明配置自定义页面。
功能ID(FunctionID/FuncId):15。
参数说明:
参数
类型
是否必选
描述
示例值
error_code
Integer
是
错误码。
404
rewrite_page
String
是
重定向页面。
http://example.aliyundoc.com/error404.html
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "error_code", "argValue": "404" }, { "argName": "rewrite_page", "argValue": "http://example.aliyundoc.com/error404.html" }], "functionName": "error_page" }], "DomainNames": "example.com" }
host_redirect
功能说明:配置URI重写规则,该功能详细介绍请参见控制台配置说明配置URI重写规则。
功能ID(FunctionID/FuncId):43。
参数说明:
参数
类型
是否必选
描述
示例值
regex
String
是
需要重写的URL,以“/”开头的URI,不含“http://”头及域名。支持PCRE正则表达式,例如:^/hello$。
^/hello$
replacement
String
是
目标URL,以“/”开头的URI,不含“http://”头及域名。
/hello/test
flag
String
否
指定DCDN节点在URI改写完成之后执行的动作,取值:
空:默认为空,指的是不传flag参数。在配置了多条规则的情况下,如果请求URL匹配了某条规则,执行完当前规则以后,还会继续匹配后续规则。
break:如果请求URL匹配了某条规则,该请求将会被重写为目标URL(不修改原始URL中的参数)。执行完当前规则后,当存在其他配置规则时,将不再匹配剩余规则。
redirect:如果请求URL匹配某条规则,该请求将会被302重定向到目标URL,DCDN节点将返回给客户端的Location信息为目标URL(不修改原始URL中的参数)。执行完当前规则后,当存在其他配置规则时,会继续匹配剩余规则。
enhance_break:和 break类似,但是会修改包含参数在内的整个URL。
enhance_redirect:和redirect类似,但是会修改包含参数在内的整个URL。
说明不同的执行规则使用的重写方式不同,重写后的URL是否支持其他域名、其他协议也存在差异:
空、break、enhance_break采用直接重写用户请求URL的方式,不支持重写为其他域名,也不支持重写为其他协议(例如从HTTP协议重写为HTTPS协议)。
redirect、enhance_redirect采用302跳转方式实现URL重写,支持重写为其他域名,也支持重写为其他协议:
302 Location地址除了可以设置为当前的加速域名,还支持设置为其他域名,可以实现这样的效果:原始URL使用的域名是example.com,重写后的URL使用新的域名aliyundoc.com。
302 Location地址支持使用其他协议,可以实现这样的效果:原始URL使用HTTP协议,重写后的URL使用HTTPS协议。
redirect
rewrite_method
String
否
重定向方式,支持302、303、307状态码:
302:默认重定向方式,GET请求方式不会发生变更,其他请求方式有可能会变更为GET请求方式。
303:GET请求方式不会发生变更,其他请求方式会变更为GET请求方式(消息主体会丢失)。
307:请求方式和消息主体都不发生变化。
302
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "flag", "argValue": "redirect" }, { "argName": "regex", "argValue": "^/hello$" }, { "argName": "replacement", "argValue": "/hello/test" }, { "argName": "rewrite_method", "argValue": "302" }], "functionName": "host_redirect" }], "DomainNames": "example.com" }
self_defined_cachekey
功能说明:配置自定义Cachekey,该功能详细介绍请参见控制台配置说明自定义CacheKey。
功能ID(FunctionID/FuncId):227。
参数说明:
参数
类型
是否必选
描述
示例值
uri
Array of String
否
将请求中的源URI改写为目标URI,然后存为cachekey。
uri_to_rewrite用于指定源uri。
ai_uri_regex用于指定目标uri。
[{"uri_to_rewrite":"/hello","ai_uri_regex":"/hello/test"}]
args
Array of String
否
请求中的参数进行增、删、改和保留操作,然后将结果存为cachekey,取值:
args_operation_type:指定参数操作类型,支持add(修改)、delete(删除)、modify(变更)和keep(保留)。
args:指定参数操作对应的参数值。
[{"args":"test=123","args_operation_type":"add"}]
headers
String
否
用于增加多个http header,并且拼接到cachekey中,多个http header之间使用空格分隔。
example
variable
Array of String
否
自定义变量,可使用正则表达式从请求URL中的请求参数、http header、cookie和uri中截取出任意字段,然后拼接到cachekey中。
[]
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "uri", "argValue": [{ "uri_to_rewrite": "/hello", "ai_uri_regex": "/hello/test" }] }, { "argName": "args", "argValue": [{ "args": "test=123", "args_operation_type": "add" }] }, { "argName": "headers", "argValue": "" }, { "argName": "variable", "argValue": [] }], "functionName": "self_defined_cachekey" }], "DomainNames": "example.com" }
rewrite_host
功能说明:共享缓存。
功能ID(FunctionID/FuncId):54。
参数说明:
参数
类型
是否必选
描述
示例值
share_host
String
是
可以与当前域名共享缓存的目标域名。该配置不修改用户请求的回源HOST,只是在查询缓存资源的时候,使用share_host值来生成查询用的cachekey。
example.com
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "share_host", "argValue": "example.com" }], "functionName": "rewrite_host" }], "DomainNames": "example.com" }
serving_stale_content
功能说明:响应过期缓存。
功能ID(FunctionID/FuncId):260。
参数说明:
参数
类型
是否必选
描述
示例值
origin_error_status_code
String
否
自定义源站异常状态码。
功能说明:用于设置在源站返回哪些状态码时适用于此功能配置。
默认值:默认不填写。默认情况下,源站异常的定义是超时+所有的5xx状态码。
配置说明:支持直接输入4xx、5xx来模糊匹配,也支持输入502、504这样的状态码来精确匹配;支持输入多个状态码,输入多个状态码的情况下,各个状态码之间用英文逗号进行分隔。
502
extend_expiration_time
Integer
否
过期延长时间。
功能说明:缓存过期后,希望保留旧缓存的最长时间。
默认值:默认不填写。默认情况下,过期延长时间是1小时。
配置说明:输入值为大于等于1的正整数,单位为秒。
60
origin_first
String
否
源站策略优先。
功能说明:参数配置为on的情况下可以开启源站策略优先,这时候如果源站返回文件时携带了缓存策略
Cache-Control: stale-if-error=xx
,将优先遵循源站响应信息里面stale-if-error参数设置的时间来作为过期延长时间。默认值:默认不填写。默认情况下,等同于off,这时候使用的是通过参数extend_expiration_time设置的过期延长时间
配置说明:支持on(开启)、off(关闭)。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "origin_error_status_code", "argValue": "502" }, { "argName": "extend_expiration_time", "argValue": "60" }, { "argName": "origin_first", "argValue": "off" }], "functionName": "serving_stale_content" }], "DomainNames": "example.com" }
HTTPS配置
https_option
功能说明:配置HTTPS基础参数,该功能详细介绍请参见控制台配置说明配置HTTPS证书、配置HTTP/2和配置OCSP Stapling。
功能ID(FunctionID/FuncId):78。
参数说明:
参数
类型
是否必选
描述
示例值
http2
String
否
是否开启HTTP2开关:
on:开启。
off:关闭。
on
ocsp_stapling
String
否
是否开启OCSP Stapling开关:
on:开启。
off:关闭。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "http2", "argValue": "on" }, { "argName": "ocsp_stapling", "argValue": "on" }], "functionName": "https_option" }], "DomainNames": "example.com" }
http_force
功能说明:配置强制HTTP跳转,该功能详细介绍请参见控制台配置说明配置强制跳转。
功能冲突说明:强制HTTP跳转功能与强制HTTPS跳转功能(功能函数:https_force,功能ID:44)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):45。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启强制HTTP跳转:
on:开启。
off:关闭。
on
http_rewrite
String
否
跳转方式,支持301、308状态码:
301:GET请求方式不会发生变更,其他请求方式有可能会变更为GET请求方式。
308:请求方式和消息主体都不发生变化。
301
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "http_rewrite", "argValue": "301" }], "functionName": "http_force" }], "DomainNames": "example.com" }
https_force
功能说明:配置强制HTTPS跳转,该功能详细介绍请参见控制台配置说明配置强制跳转。
功能冲突说明:强制HTTPS跳转功能与强制HTTP跳转功能(功能函数:http_force,功能ID:45)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):44。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启强制HTTPS跳转:
on:开启。
off:关闭。
on
https_rewrite
String
否
跳转方式,支持301、308状态码:
301:GET请求方式不会发生变更,其他请求方式有可能会变更为GET请求方式。
308:请求方式和消息主体都不发生变化。
301
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "https_rewrite", "argValue": "301" }], "functionName": "https_force" }], "DomainNames": "example.com" }
https_tls_version
功能说明:配置TLS协议版本,该功能详细介绍请参见控制台配置说明配置TLS版本控制。
功能ID(FunctionID/FuncId):110。
参数说明:
参数
类型
是否必选
描述
示例值
tls10
String
否
是否开启TLSv1.0:
on(默认):开启。
off:关闭。
on
tls11
String
否
是否开启TLSv1.1:
on(默认):开启。
off:关闭。
on
tls12
String
否
是否开启TLSv1.2:
on(默认):开启。
off:关闭。
on
tls13
String
否
是否开启TLSv1.3:
on(默认):开启。
off:关闭。
on
ciphersuitegroup
String
否
加密算法套件组:
all(默认):全部加密算法套件。
strict:强加密算法套件。
custom:自定义加密算法套件。
all
ciphersuite
String
否
加密算法套件,配合ciphersuitegroup参数(自定义加密算法套件)使用,可以配置多个加密算法套件,中间用英文逗号分隔。
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
配置示例:
默认配置,开启TLS1.0、1.1、1.2,使用全部加密算法套件。
{ "Functions": [{ "functionArgs": [ { "ArgValue": "on", "ArgName": "tls10" }, { "ArgValue": "on", "ArgName": "tls11" }, { "ArgValue": "on", "ArgName": "tls12" }, { "ArgValue": "off", "ArgName": "tls13" }, { "ArgValue": "all", "ArgName": "ciphersuitegroup" } ], "functionName": "https_tls_version" }], "DomainNames": "example.com" }
开启TLS1.2、1.3,使用强加密算法套件。
{ "Functions": [{ "functionArgs": [ { "ArgValue": "off", "ArgName": "tls10" }, { "ArgValue": "off", "ArgName": "tls11" }, { "ArgValue": "on", "ArgName": "tls12" }, { "ArgValue": "on", "ArgName": "tls13" }, { "ArgValue": "strict", "ArgName": "ciphersuitegroup" } ], "functionName": "https_tls_version" }], "DomainNames": "example.com" }
开启TLS1.2、1.3,使用自定义加密算法套件。
{ "Functions": [{ "functionArgs": [ { "ArgValue": "off", "ArgName": "tls10" }, { "ArgValue": "off", "ArgName": "tls11" }, { "ArgValue": "on", "ArgName": "tls12" }, { "ArgValue": "on", "ArgName": "tls13" }, { "ArgValue": "custom", "ArgName": "ciphersuitegroup" }, { "ArgValue": "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "ArgName": "ciphersuite" } ], "functionName": "https_tls_version" }], "DomainNames": "example.com" }
HSTS
功能说明:配置HSTS,该功能详细介绍请参见控制台配置说明配置HSTS。
功能ID(FunctionID/FuncId):112。
参数说明:
参数
类型
是否必选
描述
示例值
enabled
String
是
是否开启HSTS:
on:开启。
off:关闭。
on
https_hsts_max_age
Integer
是
过期时间,单位:秒。
说明建议填写5184000s(60天)。
5184000
https_hsts_include_subdomains
String
否
配置HSTS头部是否包含子域名参数,取值on或者off。
说明开启前请确保该加速域名的所有子域名都已开启HTTPS,否则会导致子域名自动跳转到HTTPS后无法访问。
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enabled", "argValue": "on" }, { "argName": "https_hsts_max_age", "argValue": "5184000" }, { "argName": "https_hsts_include_subdomains", "argValue": "off" }], "functionName": "HSTS" }], "DomainNames": "example.com" }
访问控制
referer_white_list_set
功能说明:配置Referer白名单,该功能详细介绍请参见控制台配置说明配置Referer防盗链。
功能冲突说明:Referer白名单功能与Referer黑名单功能(功能函数:referer_black_list_set,功能ID:5)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):1。
参数说明:
参数
类型
是否必选
描述
示例值
refer_domain_allow_list
String
是
白名单列表,多个用半角逗号(,)分隔。
example.aliyundoc.com,demo.aliyundoc.com
allow_empty
String
否
是否允许空referer字段访问DCDN资源。取值:
on:允许。
off(默认值):禁止。
off
redirect_url
String
否
重定向URL,即用户请求中的referer信息未匹配上白名单列表,被拦截后不会再返回403,而是会返回302加Location头,该项为Location头的值,以 http:// 或者 https:// 开头。
http://www.example.com
disable_ast
String
否
使用精确匹配模式,控制“白名单列表”项中填写的域名是否为精确匹配。如果勾选(on)则精确匹配域名。
取值为on时:
支持精确匹配
白名单列表填写
example.com
,匹配example.com
。白名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
。
不支持后缀匹配
取值为off(默认值)时:
不支持精确匹配
支持后缀匹配
白名单列表填写
example.com
,匹配example.com
和<任意字符>.example.com
。白名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
和<任意字符>.a<任意字符>b.example.com
。
off
ignore_scheme
String
否
开启忽略scheme。开启后,如果用户请求中的referer没有带上HTTP或HTTPS协议头部,则依然当做有效referer进行处理。示例:
取值为on时,referer格式如下:
referer: www.example.com
取值为off(默认值)时,referer格式如下:
referer: https://www.example.com
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "allow_empty", "argValue": "off" }, { "argName": "refer_domain_allow_list", "argValue": "example.aliyundoc.com,demo.aliyundoc.com" }], "functionName": "referer_white_list_set" }], "DomainNames": "example.com" }
referer_black_list_set
功能说明:配置Referer黑名单,该功能详细介绍请参见控制台配置说明配置Referer防盗链。
功能冲突说明:Referer黑名单功能与Referer白名单功能(功能函数:referer_white_list_set,功能ID:1)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):5。
参数说明:
参数
类型
是否必选
描述
示例值
refer_domain_deny_list
String
是
黑名单列表,多个用半角逗号(,)分隔。
example.aliyundoc.com,demo.aliyundoc.com
allow_empty
String
否
是否允许空referer字段访问DCDN资源:
on:允许。
off:禁止。
off
redirect_url
String
否
重定向URL,即用户请求中的referer信息匹配上黑名单列表,被拦截后不会再返回403,而是会返回302加Location头,该项为Location头的值,以 http:// 或者 https:// 开头。
http://www.example.com
disable_ast
String
否
使用精确匹配模式,控制“黑名单列表”项中填写的域名是否为精确匹配。如果勾选(on)则精确匹配域名。
取值为on时:
支持精确匹配
黑名单列表填写
example.com
,匹配example.com
。黑名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
。
不支持后缀匹配
取值为off(默认值)时:
不支持精确匹配
支持后缀匹配
黑名单列表填写
example.com
,匹配example.com
和<任意字符>.example.com
。黑名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
和<任意字符>.a<任意字符>b.example.com
。
off
ignore_scheme
String
否
开启忽略scheme。开启后,如果用户请求中的referer没有带上HTTP或HTTPS协议头部,则依然当做有效referer进行处理。示例:
取值为on时,referer格式如下:
referer: www.example.com
取值为off(默认值)时,referer格式如下:
referer: https://www.example.com
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "allow_empty", "argValue": "off" }, { "argName": "refer_domain_deny_list", "argValue": "example.aliyundoc.com,demo.aliyundoc.com" }], "functionName": "referer_black_list_set" }], "DomainNames": "example.com" }
aliauth
功能说明:配置URL鉴权,该功能详细介绍请参见控制台配置说明配置URL鉴权。
功能ID(FunctionID/FuncId):25。
参数说明:
参数
类型
是否必选
描述
示例值
auth_m3u8
String
否
开启m3u8内容改写,对m3u8里面的ts补齐对应的鉴权,可以避免ts的访问鉴权失败,取值on(默认值)和off。
on
auth_type
String
是
鉴权类型。取值:
no_auth:无鉴权。
type_a:鉴权方式A。
type_b:鉴权方式B。
type_c:鉴权方式C。
type_f:鉴权方式F。
type_a
auth_key1
String
是
鉴权key1(16~128个字符支持大写字母、小写字母和数字)。
1234567890123456789
auth_key2
String
否
鉴权key2(16~128个字符支持大写字母、小写字母和数字)。
1234567890123456789
ali_auth_delta
Integer
否
鉴权URL有效时长,默认1800,单位:秒。
1800
req_auth_ip_white
String
否
白名单例外IP列表,白名单中的IP不去进行鉴权校验。
支持输入多个IP地址,多个IP地址之间使用英文逗号分隔。
192.168.0.1
req_auth_ip_acl_xfwd
String
否
客户端例外IP的提取方式,取值支持:
on:该模式为默认模式。该模式校验的是用户请求中x-forwarded-for请求头携带的左边第一个IP,这个IP对应客户端真实IP。
off:该模式校验的是客户端与DCDN节点之间建连使用的IP。
all:同时校验以下两个IP地址信息:
用户请求中x-forwarded-for请求头携带的左边第一个IP,即客户端真实IP。
客户端与DCDN节点之间建连使用的IP。
all
sign_param
String
否
签名参数名称。仅在鉴权类型设置为F方式的时候有效
sign
time_param
String
否
时间戳参数名称。仅在鉴权类型设置为F方式的时候有效。
time
time_format
String
否
时间戳格式。仅在鉴权类型设置为F方式的时候有效。
dec:十进制
hex:十六进制
hec
path_encoding
String
否
URL编码开关,支持on/off。仅在鉴权类型设置为F方式的时候有效。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "auth_type", "argValue": "type_a" }, { "argName": "auth_key1", "argValue": "1234567890123456789" }, { "argName": "auth_key2", "argValue": "1234567890123456789" }, { "argName": "ali_auth_delta", "argValue": 1800 }, { "argName": "req_auth_ip_white", "argValue": "192.168.0.1" }, { "argName": "req_auth_ip_acl_xfwd", "argValue": "all" }{ "argName": "sign_param", "argValue": "sign" }, { "argName": "time_param", "argValue": "time", }, { "argName": "time_format", "argValue": "hec" }, { "argName": "path_encoding", "argValue": "on" }], "functionName": "aliauth" }], "domainNames": "example.com" }
cdn_remote_auth
功能说明:配置远程鉴权。
功能ID(FunctionID/FuncId):258。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启远程鉴权:
on:开启。
off:关闭。
on
remote_auth_addr
String
是
鉴权服务器地址。格式:
https://dcdn.aliyun.com/auth
或者http://10.10.10.10/auth
。https://example.aliyundoc.com/auth
remote_auth_method
String
是
请求方法,支持get/post/head。
get
remote_auth_type
String
是
鉴权文件类型。all表示所有类型,多个文件类型用竖线分隔、区分大小写(jpg不等同于JPG)。
all
remote_auth_reserve_args
String
是
保留参数设置,多个请求头用竖线分隔,不区分大小写(key等同于KEY)。
all:保留所有参数。
ali_delete_all_args:表示删除所有URL参数。
all
remote_auth_custom_args
String
否
添加自定义参数,多个参数用竖线分隔、区分大小写(key不等同于KEY)。
空
remote_auth_reserve_header
String
是
保留请求头设置,多个请求头用竖线分隔,不区分大小写(http_remote_addr等同于HTTP_Remote_Addr)。
all:保留所有请求头。
ali_delete_all_headers:删除所有请求头。
all
remote_auth_custom_header
String
否
添加自定义请求头,多个请求头用竖线分隔、不区分大小写(http_remote_addr等同于HTTP_Remote_Addr)。
空
remote_auth_success_code
Integer
是
鉴权成功状态码,指鉴权服务器在鉴权成功之后传给CDN的鉴权结果。例如:200。支持配置多个状态码,多个状态码之间用英文逗号分隔。
200
remote_auth_fail_code
Integer
是
鉴权失败状态码,指鉴权服务器在鉴权失败之后传给CDN的鉴权结果。例如:403。支持配置多个状态码,多个状态码之间用英文逗号分隔。
403,404
remote_auth_other_code_act
String
否
其他状态码是否放行,表示在鉴权服务器返回的状态码既不是鉴权成功状态码,也不是鉴权失败状态码的情况下,CDN对用户请求的处理方式,取值:
pass:通过(默认值)。
reject:拒绝。
pass
remote_auth_fail_resp_code
Integer
是
鉴权失败DCDN响应状态码。例如:403,DCDN传给用户的状态码。
403
remote_auth_timeout
Integer
是
鉴权超时配置,单位ms,最大值为3000。
500
remote_auth_timeout_action
String
是
鉴权超时行为,取值:
pass:DCDN将直接通过用户请求。
reject,DCDN将响应上面配置的“鉴权失败DCDN响应状态码”给用户。
pass
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "remote_auth_addr", "argValue": "https://example.aliyundoc.com/auth" }, { "argName": "remote_auth_method", "argValue": "get" }, { "argName": "remote_auth_type", "argValue": "all" }, { "argName": "remote_auth_reserve_args", "argValue": "all" }, { "argName": "remote_auth_custom_args", "argValue": "" }, { "argName": "remote_auth_reserve_header", "argValue": "all" }, { "argName": "remote_auth_custom_header", "argValue": "" }, { "argName": "remote_auth_success_code", "argValue": "200" }, { "argName": "remote_auth_fail_code", "argValue": "403" }, { "argName": "remote_auth_other_code_act", "argValue": "pass" }, { "argName": "remote_auth_fail_resp_code", "argValue": "403" }, { "argName": "remote_auth_timeout", "argValue": 500 }, { "argName": "remote_auth_timeout_action", "argValue": "pass" }], "functionName": "cdn_remote_auth" }], "DomainNames": "example.com" }
ip_allow_list_set
功能说明:配置IP白名单,该功能详细介绍请参见控制台配置说明配置IP黑白名单。
功能冲突说明:IP白名单功能与IP黑名单功能(功能函数:ip_black_list_set,功能ID:13)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):69。
参数说明:
参数
类型
是否必选
描述
示例值
ip_list
String
是
IP列表,多个用半角逗号(,)分隔。
192.168.0.1/24
ip_acl_xfwd
String
否
使用X-Forwarded-For头中的IP,取值范围:
on:默认取值,使用用户请求中的
x-forwarded-for
请求头(从左向右取第一个IP)作为判断依据。off:使用
真实建连ip
作为判断依据。all:同时使用
x-forwarded-for
和真实建连ip
作为判断依据。
all
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "ip_list", "argValue": "192.168.0.1/24" }], "functionName": "ip_allow_list_set" }], "DomainNames": "example.com" }
ip_black_list_set
功能说明:配置IP黑名单,该功能详细介绍请参见控制台配置说明配置IP黑白名单。
功能冲突说明:IP黑名单功能与IP白名单功能(功能函数:ip_allow_list_set,功能ID:69)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):13。
参数说明:
参数
类型
是否必选
描述
示例值
ip_list
String
是
IP列表,多个用半角逗号(,)分隔。
192.168.0.1
ip_acl_xfwd
String
否
使用X-Forwarded-For头中的IP,取值范围:
on:默认取值,使用用户请求中的
x-forwarded-for
请求头(从左向右取第一个IP)作为判断依据。off:使用
真实建连ip
作为判断依据。all:同时使用
x-forwarded-for
和真实建连ip
作为判断依据。
all
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "ip_list", "argValue": "192.168.0.1" }], "functionName": "ip_black_list_set" }], "DomainNames": "example.com" }
ali_ua
功能说明:配置User-Agent限制访问,该功能详细介绍请参见控制台配置说明配置User-Agent黑白名单。
功能ID(FunctionID/FuncId):58。
参数说明:
参数
类型
是否必选
描述
示例值
ua
String
是
填写User-Agent,支持通配符号*(匹配任意字符串)和多个值(多个值用|分割。例如:
*curl*|*IE*|*chrome*|*firefox*。)
。*curl*|*IE*|*chrome*|*firefox*
type
String
是
名单类型,取值:
black:黑名单。
white:白名单。
说明黑、白名单互斥,同一时间只支持其中一种方式生效。
black
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "ua", "argValue": "*curl*|*IE*|*chrome*|*firefox*" }, { "argName": "type", "argValue": "black" }], "functionName": "ali_ua" }], "DomainNames": "example.com" }
性能优化
tesla
功能说明:配置页面优化加速,该功能详细介绍请参见控制台配置说明页面优化。
功能ID(FunctionID/FuncId):16。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启页面优化加速:
on:开启。
off:关闭。
on
trim_js
String
否
是否优化HTML中内嵌的js代码:
on:开启。
off(默认):关闭。
off
trim_css
String
否
是否优化HTML中内嵌的css代码:
on:开启。
off(默认):关闭。
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "trim_css", "argValue": "off" }, { "argName": "trim_js", "argValue": "off" }], "functionName": "tesla" }], "DomainNames": "example.com" }
gzip
功能说明:页面Gzip优化,该功能详细介绍请参见控制台配置说明Gzip压缩。
功能ID(FunctionID/FuncId):35。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启页面Gzip优化:
on:开启。
off:关闭。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }], "functionName": "gzip" }], "DomainNames": "example.com" }
brotli
功能说明:配置页面Brotli压缩,该功能详细介绍请参见控制台配置说明Brotli压缩。
功能ID(FunctionID/FuncId):97。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启页面Brotli压缩:
on:开启。
off:关闭。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }], "functionName": "brotli" }], "DomainNames": "example.com" }
set_hashkey_args
功能说明:配置忽略URL参数(保留),该功能详细介绍请参见控制台配置说明过滤参数。
功能冲突说明:忽略URL参数(保留)功能与忽略URL参数(删除)功能(功能函数:ali_remove_args,功能ID:75)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):19。
参数说明:
参数
类型
是否必选
描述
示例值
hashkey_args
String
否
保留参数列表,多个用半角逗号(,)分隔,最多支持填写10个。
key1,key2
disable
String
是
是否忽略所有参数:
on:忽略所有参数,除了添加参数功能仍能生效以外,删除参数、仅保留、修改参数功能都将失效。
off(默认):关闭忽略参数功能,保留参数、添加参数、删除参数仍会生效。
说明缓存hashkey忽略所有参数,优先级低于保留缓存参数列表功能。
on
keep_oss_args
String
是
是否保留回源参数:
on:回源保留所有参数。
off:回源携带的参数与缓存hashkey的参数一致。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "hashkey_args", "argValue": "" }, { "argName": "keep_oss_args", "argValue": "on" }, { "argName": "disable", "argValue": "on" }], "functionName": "set_hashkey_args" }], "DomainNames": "example.com" }
ali_remove_args
功能说明:配置忽略URL参数(删除),该功能详细介绍请参见控制台配置说明过滤参数。
功能冲突说明:忽略URL参数(删除)功能与忽略URL参数(保留)功能(功能函数:set_hashkey_args,功能ID:19)存在冲突,只能二选其一。如果已经配置了其中一个功能(注意:如果功能函数存在功能开关配置参数,在参数被置为off的情况下,也属于已存在配置),则必须删除已经添加的功能配置(您可以通过调用DeleteDcdnSpecificConfig接口来删除域名的指定配置),然后才能给另外一个功能添加配置。
功能ID(FunctionID/FuncId):75。
参数说明:
参数
类型
是否必选
描述
示例值
ali_remove_args
String
是
删除指定的参数,多个参数之间用空格隔开。
说明剩余参数将作为hashkey中URL args部分。
test
keep_oss_args
String
是
回源是否保留参数:
on:回源保留所有参数。
off:回源携带的参数与缓存hashkey的参数一致。
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "ali_remove_args", "argValue": "test" }, { "argName": "keep_oss_args", "argValue": "off" }], "functionName": "ali_remove_args" }], "DomainNames": "example.com" }
image_transform
功能说明:配置DCDN图片转换,该功能详细介绍请参见控制台配置说明图像处理方法及优势。
功能ID(FunctionID/FuncId):239。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启图片转换:
on:开启。
off:关闭。
on
filetype
String
是
支持转码的图片格式,以竖线分割符号分隔。支持以下参数值:
JPEG:JPEG 图片格式。
JPG:JPG 图片格式。
PNG:PNG 图片格式。
WEBP:WEBP 图片格式。
BMP:BMP 图片格式。
GIF:GIF 图片格式。
TIFF:TIFF 图片格式。
JP2:JPEG 2000 图片格式。
jpg|jpeg|png
webp
String
否
是否开启自适应转换WEBP:
on:开启。
off:关闭。
on
orient
String
否
是否开启图片自旋转:
on:开启。
off:关闭。
说明只对有自旋转属性的图片生效。
on
slim
Integer
否
图片瘦身,设置瘦身的百分比,可配置范围是[0,100]。在不改变分辨率、尺寸、格式的前提下,缩小图片质量达到省流目的。
10
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "filetype", "argValue": "jpg|jpeg|png" }, { "argName": "webp", "argValue": "on" }, { "argName": "orient", "argValue": "on" }, { "argName": "slim", "argValue": "" }, { "argName": "enable", "argValue": "on" }], "functionName": "image_transform" }], "DomainNames": "example.com" }
视频相关
range
功能说明:配置range回源,该功能详细介绍请参见控制台配置说明配置Range回源。
功能ID(FunctionID/FuncId):31。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启range回源:
on:开启。
off:关闭。
force:强制开启。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }], "functionName": "range" }], "DomainNames": "example.com" }
video_seek
功能说明:配置视频拖拽播放,该功能详细介绍请参见控制台配置说明拖拽播放。
功能ID(FunctionID/FuncId):30。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启视频拖拽播放:
on:开启。
off:关闭。
on
flv_seek_by_time
String
否
是否开启FLV按时间拖拽:
on:开启。
off:关闭。
on
mp4_seek_start
String
否
自定义MP4开始参数。
mp4starttime
mp4_seek_end
String
否
自定义MP4结束参数。
mp4endtime
flv_seek_start
String
否
自定义FLV开始参数。
flvstarttime
flv_seek_end
String
否
自定义FLV结束参数。
flvendtime
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }], "functionName": "video_seek" }], "DomainNames": "example.com" }
ali_video_split
功能说明:配置听视频。
功能ID(FunctionID/FuncId):204。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启听视频:
on:开启。
off:关闭。
on
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }], "functionName": "ali_video_split" }], "DomainNames": "example.com" }
ali_video_preview
功能说明:配置视频试看。
功能ID(FunctionID/FuncId):205。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启视频试看:
on:开启。
off:关闭。
说明支持TS、MP3文件格式,FLV和MP4使用拖拽功能实现。
on
ali_video_preview_argument
String
是
自定义试看参数名,试看参数值的单位必须是秒。
fds
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "ali_video_preview_argument", "argValue": "fds" }], "functionName": "ali_video_preview" }], "DomainNames": "example.com" }
hls_token_rewrite
功能说明:配置M3U8标准加密改写。
功能ID(FunctionID/FuncId):253。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启M3U8标准加密改写:
on:开启。
off:关闭。
on
hls_token_arg_name
String
否
自定义hls token的参数名称。如果不设置,使用MtsHlsUriToken作为自定义参数名。
example
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }], "functionName": "hls_token_rewrite" }], "DomainNames": "example.com", }
安全配置
ddos_domain
功能说明:DDoS防护调度,该功能详细介绍请参见控制台配置说明防护配置。
功能ID(FunctionID/FuncId):209。
参数说明:
参数
类型
是否必选
描述
示例值
enable
String
是
是否开启DDoS防护:
on:开启。
off:关闭。
on
dispatch_qps
String
是
QPS阈值。
取值范围:2000~50000。
默认值:20000。
20000
checkurl
String
是
域名下需要健康检查的路径。
默认值:
/
(代表域名默认根目录)。/*/examplefile.txt
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "dispatch_qps", "argValue": "20000" }, { "argName": "checkurl", "argValue": "/*/examplefile.txt" }], "functionName": "ddos_domain" }], "DomainNames": "example.com" }
流量限制
limit_rate
功能说明:配置单请求限速。
功能ID(FunctionID/FuncId):72。
参数说明:
可以仅配置ali_limit_rate,也可以配置根据用户请求URL中携带的参数来限速,还可以设定限速开始和结束时间。
根据用户请求URL中携带的参数来限速:通过traffic_limit_arg和traffic_limit_unit这两个参数的组合来实现。
设定限速开始和结束时间:通过ali_limit_start_hour和ali_limit_end_hour这两个参数的组合来实现。
参数
类型
是否必选
描述
示例值
ali_limit_rate
String
是
指定单请求限速的具体速率(例如:200 KByte/s、1 MByte/s等),支持“数值+字母单位”的参数值(字母单位支持k、m),单位Byte/s。
最小只能设定为100k,低于100k的值将会按100k来执行。
1m:表示单请求限速为1 MByte/s
100k:表示单请求限速为100 KByte/s
ali_limit_rate_after
String
否
不限速大小,在发送了多少数据之后才开始限速。支持“数值+字母单位”的参数值(字母单位支持k、m),单位Byte。
1000
traffic_limit_arg
String
否
限速参数名称,根据URL中提取的arg进行限速,例如:rate。
当请求中不带限速参数时,按默认限速值ali_limit_rate限速,如果想达到请求中没限速参数时不限速的效果,则把默认限速值ali_limit_rate配置为0k。
rate
traffic_limit_unit
String
否
限速参数traffic_limit_arg的单位,支持m(MByte/s)、k(KByte/s)。限速参数单位设定为m的情况下,当用户请求URL中携带的rate=1时,实际限速值为1MByte/s。
最小只能设定为100k,低于100k的值将会按100k来执行。
m
ali_limit_start_hour
Integer
否
限速开始时间,取值范围[0,24],小于限速结束时间,默认值为0。
说明表示时间点,24小时制的整点,例如:0表示00:00:00,24表示24:00:00。
20
ali_limit_end_hour
Integer
否
限速结束时间,取值范围[0,24],大于限速开始时间,默认值为24。
23
配置示例一:设置单请求限速为1 MByte/s。
{ "Functions": [{ "functionArgs": [{ "argName": "ali_limit_rate", "argValue": "1m" }], "functionName": "limit_rate" }], "DomainNames": "example.com" }
配置示例二:默认情况下,单请求限速为1 MByte/s,如果用户请求URL中携带了参数rate,则会按照参数rate的实际数值来执行限速。例如:用户请求中携带了参数rate=200,则实际将会被限速为200 KByte/s。
{ "Functions": [{ "functionArgs": [{ "argName": "ali_limit_rate", "argValue": "1m" },{ "argName": "traffic_limit_arg", "argValue": "rate" },{ "argName": "traffic_limit_unit", "argValue": "k" }], "functionName": "limit_rate" }], "DomainNames": "example.com" }
WebSocket
websocket
功能说明:配置WebSocket,该功能详细介绍请参见控制台配置说明配置WebSocket。
功能ID(FunctionID/FuncId):144。
参数说明:
参数
类型
是否必选
描述
示例值
enabled
String
是
是否开启WebSocket:
on:开启。
off:关闭。
on
origin_scheme
String
否
WebSocket协议回源站时遵循的协议类型,取值:
http:WebSocket以HTTP协议回源。
https:WebSocket以HTTPS协议回源(源站需支持443端口)。
follow(跟随):客户端以HTTP或HTTPS协议回源,WebSocket跟随客户端的协议请求源站(源站需支持443或者80端口)。
说明origin_scheme不配置时,默认取值为follow。
http
heartbeat
String
否
连接超时时间。
取值范围:1~300
单位:秒
默认值:60
60
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "enabled", "argValue": "on" }, { "argName": "origin_scheme", "argValue": "http" }, { "argName": "heartbeat", "argValue": "60" }], "functionName": "websocket" }], "DomainNames": "example.com" }
IP应用加速
protogw
功能说明:配置IP应用加速,该功能详细介绍请参见控制台配置说明什么是IP应用加速。
功能ID(FunctionID/FuncId):163。
参数说明:
参数
类型
是否必选
描述
示例值
realip
String
是
客户端IP透传协议开关,取值:
off:关闭。
toa:携带客户端真实IP,需要源站安装TOA内核模块,服务程序无需改造。
pp:携带客户端真实IP,Nginx开源版本默认支持,其他源站服务软件需自行兼容。
toa
port
String
是
加速端口。
说明不支持22、123、161~162、179、830、2049、2601、2605、3389、5049、7547、8082、8087、8182、8888、9998、15772、15776、15778~15779、18053、18098~18099、18888、19313、19777、56667端口配置。
如果您需要添加80和443端口,请提交工单
8443
mux
String
否
是否针对端口开启多路复用功能,取值:
on:开启。
off:关闭。
off
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "realip", "argValue": "toa" }, { "argName": "port", "argValue": "8443" }, { "argName": "mux", "argValue": "off" }], "functionName": "protogw" }], "DomainNames": "example.com" }
EdgeScript边缘脚本/边缘函数
edge_function
功能说明:边缘脚本EdgeScript,该功能详细介绍请参见控制台配置说明EdgeScript概述。
功能ID(FunctionID/FuncId):180。
参数说明:
参数
类型
是否必选
描述
示例值
rule
String
是
DSL规则。
if eq($uri, '/') {\n rewrite('https://example.com/index.html', 'redirect')\n}
pri
Integer
是
优先级,取值:[0,999],数字越小优先级越高。
说明头部执行和尾部执行的优先级互相独立。
0
enable
String
是
本条规则是否生效:
on:生效。
off:无效。
on
name
String
是
规则名称,仅支持英文字母和下划线(_)。
test
pos
String
否
规则执行位置,取值:
head(默认值):请求处理流程头部介入。
foot:请求处理流程尾部介入。
head
brk
String
否
中断执行,取值:
on:命中本条规则后,当前执行位置剩余规则均跳过。
off(默认值):命中本条规则后,还会执行剩余规则。
off
option
String
否
扩展字段。
空
grammar
String
否
规则语法,取值:es2(默认值)和js。
/
jsmode
String
否
JS执行模式,取值:
redirect:拦截模式。
bypass(默认值):旁路模式。
/
配置示例:
{ "Functions": [{ "functionArgs": [{ "argName": "name", "argValue": "test" }, { "argName": "rule", "argValue": "if eq($uri, '/') {\n rewrite('https://example.com/index.html', 'redirect')\n}" }, { "argName": "pri", "argValue": "0" }, { "argName": "pos", "argValue": "head" }, { "argName": "enable", "argValue": "on" }, { "argName": "brk", "argValue": "off" }, { "argName": "option", "argValue": "" }], "functionName": "edge_function" }], "DomainName": "example.com" }
边缘程序
规则引擎
condition
功能说明:规则引擎,该功能能够使用图形化的方式来配置各种条件规则。条件规则支持对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效,可用于更加灵活、更加精确地控制DCDN的各种配置策略的执行效果。
功能ID(FunctionID/FuncId):250。
参数说明:
参数
类型
是否必选
描述
示例值
rule
Array
是
规则条件的具体内容,包括名称、状态、逻辑判断、条件表达式。
规则条件内容:
{\"match\":{\"logic\":\"and\",\"criteria\":[{\"matchType\":\"clientipVer\",\"matchObject\":\"CONNECTING_IP\",\"matchOperator\":\"equals\",\"matchValue\":\"v6\",\"negate\":false}]},\"name\":\"example\",\"status\":\"enable\"}
实现效果:
规则名称:example
状态:enable
逻辑判断:and
条件表达式:客户端建联IP的协议版本等于v6
条件表达式的格式(即argValue的格式)说明如下:
参数
说明
\"match\":
match表示条件匹配表达式。
\"logic\":\"and\"
logic表示条件匹配表达式的逻辑判断参数,取值为and和or。
\"criteria\"
criteria表示条件表达式的判断内容。
\"matchType\":\"clientipVer\"
matchType表示对用户请求中携带的某一类型信息进行匹配。
\"matchObject\":\"CONNECTING_IP\"
matchObject表示对匹配类型进行进一步的细分,例如:客户端IP可以进一步细分为“建联IP”和“XFF IP”。
\"matchOperator\":\"equals\"
matchOperator表示匹配操作执行的具体动作。
\"matchValue\":\"v6\"
matchValue表示预先设定的匹配值,将会与用户请求中携带的信息进行匹配。
\"negate\":false
negate表示是否对条件表达式的结果取反,取值为true和false。
\"name\":\"example\"
name表示规则条件的名称。
\"status\":\"enable\"
status表示规则条件的生效状态。
配置示例:
以下示例演示了如何通过OpenAPI来给加速域名
example.com
添加一个规则引擎配置,实现对客户端IP协议版本是否为IPv6的匹配和过滤。{ "Functions": [{ "functionArgs": [{ "argName": "rule", "argValue": "{\"match\":{\"logic\":\"and\",\"criteria\":[{\"matchType\":\"clientipVer\",\"matchObject\":\"CONNECTING_IP\",\"matchOperator\":\"equals\",\"matchValue\":\"v6\",\"negate\":false}]},\"name\":\"example\",\"status\":\"enable\"}" }], "functionName": "condition" }], "DomainNames": "example.com" }
创建完成的规则引擎配置,可以供其他功能配置时关联引用,以实现更加灵活、更加精确地控制DCDN各种配置策略的执行效果。
注意事项:
其他功能在关联引用规则引擎配置的时候,需要通过设置parentid来引用已经使用规则引擎功能创建好的某个规则条件,这里的parentid等于添加规则引擎配置时生成的configid。
功能函数是condition(规则引擎)的时候,不支持设置parentid参数。
QUIC
quic
功能说明:QUIC协议,该功能详细介绍请参见控制台配置说明什么是QUIC协议。
功能ID(FunctionID/FuncId):281。
参数说明:
参数
类型
是否必填
描述
示例值
iquic_enable
String
是
是否开启QUIC协议:
on:开启
off:关闭
on
配置示例
{ "Functions": [{ "functionArgs": [{ "argName": "iquic_enable", "argValue": "on" }], "functionName": "iquic" }], "DomainNames": "example.com" }