調用BatchSetCdnDomainConfig、SetCdnDomainStagingConfig可大量設定網域名稱功能,本文為您介紹該API可以配置哪些功能及功能參數用法。
本文中介紹的功能均能夠被以下介面引用:
調用BatchSetCdnDomainConfig、SetCdnDomainStagingConfig可以實現網域名稱的大量設定,並產生唯一的ConfigId,通過ConfigId可以實現對指定配置的更新和刪除。具體使用方法,請參見ConfigId使用說明。
基本資料
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:CDN以HTTP協議回源。
https:CDN以HTTPS協議回源。
follow(跟隨):用戶端以HTTP或者HTTPS協議請求CDN,CDN跟隨用戶端的協議請求來源站點。
說明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
配置樣本一:CDN跟隨用戶端的請求協議回源,回源訪問的連接埠為協議預設連接埠,即HTTP協議對應80連接埠,HTTPS協議對應443連接埠。
{ "Functions": [{ "functionArgs": [{ "argName": "enable", "argValue": "on" }, { "argName": "scheme_origin", "argValue": "follow" }], "functionName": "forward_scheme" }], "DomainNames": "example.com" }
配置樣本二:CDN跟隨用戶端的請求協議回源,回源訪問的連接埠為自訂連接埠,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回源。注意,首次使用該功能時,需要進行預設權限原則的一鍵開啟操作,開啟後將會授予CDN產品對您同帳號下OSS產品的所有Bucket的唯讀存取權限。該功能詳細介紹請參見控制台配置說明OSS私人Bucket回源。
功能ID(FunctionID/FuncId):85。
參數說明:
參數
類型
是否必選
描述
樣本值
private_oss_auth
String
是
是否開啟私人Bucket回源:
on:開啟。
off:關閉。
功能開啟以後,系統會自動設定STS安全性權杖,配置更簡單,但是僅支援CDN網域名稱回源到同一個阿里雲帳號下的OSS私人Bucket。關於STS安全性權杖更多資訊,請參見什麼是STS。
on
perm_private_oss_tbl
String
否
永久安全性權杖配置,配置格式是
access_id=123 access_secret=123abc
(中間用空格分隔)。配置了永久安全性權杖以後,除了支援CDN網域名稱回源到同一個阿里雲帳號下的OSS私人Bucket,還支援CDN網域名稱回源到其他阿里雲帳號下的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
(中間用空格分隔)。配置了永久安全性權杖以後,除了支援CDN網域名稱回源到同一個阿里雲帳號下的OSS私人Bucket,還支援CDN網域名稱回源到另外一個阿里雲帳號下的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。
功能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
功能說明:配置回源請求逾時時間,該功能詳細介紹請參見控制台配置說明配置回源HTTP請求逾時時間。
功能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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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跟隨回應標頭,表示來源站點給CDN的302跟隨回應標頭的名稱,該回應標頭名稱預設為Location。
X-Alicdn-Redirect
retain_host
String
否
302跟隨保留回源網域名稱,當開啟時,表示CDN在302跟隨時保留回源網域名稱,只在跟隨到目標網域名稱時生效。可以配置的值為:
on:開啟
off(預設):關閉
off
modify_host
String
否
302跟隨修改回源網域名稱,表示CDN在302跟隨時修改回源網域名稱,只在跟隨到目標網域名稱時生效。預設不修改回源網域名稱。
example.com
cache
String
否
302跟隨緩衝跟隨結果,當開啟時,表示CDN在302跟隨時緩衝同URL的跟隨結果,提升CDN的響應效能。可以配置的值為:
on:開啟
off(預設):關閉
off
expired_time
Integer
否
302跟隨緩衝跟隨結果的逾時時間,表示CDN在302跟隨時緩衝同URL的跟隨結果的逾時時間,需要配合緩衝功能一起使用,單位秒,預設:3600秒
7200
follow_origin_host
String
否
302跟隨回源host使用來源站點網域名稱,當開啟時,表示CDN會使用來源站點網域名稱作為回源host(即使主備切換也會使用最新的來源站點網域名稱)。可以配置的值為:
on:開啟
off(預設):關閉
off
follow_5xx_retry_origin
String
否
來源站點主備切換,當開啟時,表示CDN如果收到來源站點響應的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_header", "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
配置樣本一:添加一個回源HTTP要求標頭。
{ "Functions": [{ "functionArgs": [{ "argName": "value", "argValue": "gzip" }, { "argName": "key", "argValue": "Accept-Encoding" }], "functionName": "set_req_header" }], "DomainNames": "example.com" }
配置樣本二:刪除一個回源HTTP要求標頭(將value值設定為null)。
{ "Functions":[{ "functionArgs":[{ "argName":"value", "argValue":"null" }, { "argName":"key", "argValue":"User-Agent" }], "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時(即執行替換操作),需要設定該參數,取值支援Regex。
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時(即執行替換操作),需要設定該參數,取值支援Regex。
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,該功能詳細介紹請參見控制台配置說明重寫回源URL。
功能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參數、要求標頭等資訊來回源到指定來源站點。該功能詳細介紹請參見控制台配置說明配置條件來源站點。
前提條件:在添加條件來源站點配置之前,您需要至少先建立一條規則引擎的規則條件,在添加條件來源站點配置時,您必須配置一條關聯的規則條件,具體請參見規則引擎。如果添加條件來源站點配置時沒有關聯規則條件,則會使CDN回源的所有流量都指向這個唯一的來源站點地址(也就失去了通過規則條件來控制回源地址的意義)。
功能衝突說明:條件來源站點功能與進階回源功能(功能函數:advanced_origin,功能ID:235)存在衝突,只能二選其一。如果已經配置了其中一個功能(注意:如果功能函數存在功能開關配置參數,在參數被置為off的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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,該功能詳細介紹請參見控制台配置說明指定來源站點回源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。
功能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(CDN回源的時候將按照來源站點權重來分配發送給不同來源站點的請求比例)。
連接埠:支援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,則CDN節點收到404或者5xx的時候都會進行重試。
回源重試順序:按照同一個來源站點組內IP地址的優先順序從高到低進行重試。
回源逾時情境:來源站點主動響應重試狀態代碼的時候,CDN節點收到重試狀態代碼之後就會重試。如果沒有收到來源站點主動響應的重試狀態代碼,則會遵循逾時時間處理流程,達到逾時時間之後就會觸發CDNCDN節點重試。
來源站點TCP建連逾時:10秒。
來源站點寫逾時:30秒(來源站點建連後寫入內容逾時)。
來源站點讀逾時:30秒(來源站點建連後在一定時間內沒有把CDN節點請求的內容完整響應回去)。
來源站點探測邏輯:
四層串連異常:如果CDN節點與某個來源站點IP四層串連失敗,會把該來源站點IP放到一個dead table中,這樣後續的回源請求就不會去訪問這個來源站點IP;此後CDN節點會每隔5秒四層探測一次該來源站點IP,如果建連成功,則將該來源站點IP恢複到可用列表中。
四層串連正常:如果CDN節點與來源站點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回源功能後,CDN回源側將提供IPv6服務。
CDN節點和來源站點都具備可用的IPv6地址,則使用IPv6建連。
以下情境使用IPv4建連:
CDN節點不具備可用的IPv6地址。
來源站點不具備可用的IPv6地址。
CDN節點和來源站點都不具備可用的IPv6地址。
on
follow
String
是
是否開啟回源跟隨用戶端IP協議版本功能。
on:開啟。
off:關閉。
說明開啟回源跟隨用戶端IP協議版本功能後,CDN回源將會跟隨用戶端請求使用的IP協議版本。
用戶端請求使用IPv6,則CDN優先回源IPv6來源站點,如果沒有IPv6來源站點,則使用IPv4來源站點。
用戶端請求使用IPv4,則CDN優先回源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
功能說明:用於配置CDN回源OSS使用的鑒權bucket資訊。
功能ID(FunctionID/FuncId):10。
注意事項:在給加速網域名稱配置了OSS類型的來源站點地址之後,平台將會自動添加oss_auth配置,無需使用者手動添加,也請使用者注意不要誤刪該配置,否則會引起OSS來源站點無法實現對CDN回源流量的計費減免,在開啟OSS私人bucket鑒權的情況下,還會導致CDN回源OSS私人bucket鑒權失敗。
參數說明:
參數
類型
是否必選
描述
樣本值
oss_bucket_id
String
是
OSS bucket的公網網域名稱地址。
cdn-test.oss-cn-hongkong.aliyuncs.com
oss_pri_buckets
String
是
OSS bucket的公網網域名稱地址及其對應的bucket名稱。
cdn-test.oss-cn-hongkong.aliyuncs.com|cdn-test
配置樣本:
{ "Functions": [ { "ArgValue": "cdn-test.oss-cn-hongkong.aliyuncs.com", "ArgName": "oss_bucket_id" }, { "ArgValue": "cdn-test.oss-cn-hongkong.aliyuncs.com|cdn-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
否
用戶端跟隨CDN緩衝策略,當開啟時,表示將最終生效的CDN緩衝策略響應給用戶端。可以配置的值為:
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
否
用戶端跟隨CDN緩衝策略,當開啟時,表示將最終生效的CDN緩衝策略響應給用戶端。可以配置的值為:
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
是
狀態代碼及其緩衝時間,單位為秒,取值範圍是1~99999999(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
否
用戶端跟隨CDN緩衝策略,當開啟時,表示將最終生效的CDN緩衝策略響應給用戶端。可以配置的值為:
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
否
用戶端跟隨CDN緩衝策略,當開啟時,表示將最終生效的CDN緩衝策略響應給用戶端。可以配置的值為:
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時(即執行替換操作),需要設定該參數,取值支援Regex。
value1
header_destination
String
否
替換後的參數值。當header_operation_type使用rewrite時(即執行替換操作),需要設定該參數。
value123
match_all
String
否
設定匹配模式。當header_operation_type使用rewrite時(即執行替換操作),需要設定匹配模式:
on:匹配所有(所有匹配上的值都會被替換)。
off:僅匹配第一個(只有第一個匹配上的值會被替換)。
/
access_origin_control
String
否
是否開啟跨域訪問:
on:開啟CDN節點對使用者請求的跨域校正。
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重寫規則,該功能詳細介紹請參見控制台配置說明重寫訪問URL。
功能ID(FunctionID/FuncId):43。
參數說明:
參數
類型
是否必選
描述
樣本值
regex
String
是
需要重寫的URI,以“/”開頭的URI,不含“http://”頭及網域名稱。支援PCRERegex,例如:^/hello$。
^/hello$
replacement
String
是
目標URI,以“/”開頭的URI,不含“http://”頭及網域名稱。
/hello/test
flag
String
否
指定CDN節點在URI改寫完成之後執行的動作,取值:
空:預設為空白,指的是不傳flag參數。在配置了多條規則的情況下,如果請求URL匹配了某條規則,執行完當前規則以後,還會繼續匹配後續規則。
break:如果請求URL匹配了某條規則,該請求將會被重寫為目標URL(不修改原始URL中的參數)。執行完當前規則後,當存在其他配置規則時,將不再匹配剩餘規則。
redirect:如果請求URL匹配某條規則,該請求將會被302重新導向到目標URL,CDN節點將返回給用戶端的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
否
自訂變數,可使用Regex從請求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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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
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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能ID(FunctionID/FuncId):1。
參數說明:
參數
類型
是否必選
描述
樣本值
refer_domain_allow_list
String
是
白名單列表,多個用半形逗號(,)分隔。
example.aliyundoc.com,demo.aliyundoc.com
allow_empty
String
否
是否允許空referer欄位訪問CDN資源。取值:
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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能ID(FunctionID/FuncId):5。
參數說明:
參數
類型
是否必選
描述
樣本值
refer_domain_deny_list
String
是
黑名單列表,多個用半形逗號(,)分隔。
example.aliyundoc.com,demo.aliyundoc.com
allow_empty
String
否
是否允許空referer欄位訪問CDN資源:
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:該模式校正的是用戶端與CDN節點之間建連使用的IP。
all:同時校正以下兩個IP地址資訊:
使用者請求中x-forwarded-for要求標頭攜帶的左邊第一個IP,即用戶端真實IP。
用戶端與CDN節點之間建連使用的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://cdn.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
是
鑒權失敗CDN響應狀態代碼。例如:403,CDN傳給使用者的狀態代碼。
403
remote_auth_timeout
Integer
是
鑒權逾時配置,單位ms,最大值為3000。
500
remote_auth_timeout_action
String
是
鑒權逾時行為,取值:
pass:CDN將直接通過使用者請求。
reject:CDN將響應上面配置的“鑒權失敗CDN響應狀態代碼”給使用者。
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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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限制訪問,該功能詳細介紹請參見控制台配置說明配置UA黑白名單。
功能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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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的情況下,也屬於已存在配置),則必須刪除已經添加的功能配置(您可以通過調用DeleteSpecificConfig介面來刪除網域名稱的指定配置),然後才能給另外一個功能添加配置。
功能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
功能說明:配置CDN圖片轉換,該功能詳細介紹請參見控制台配置說明圖片處理概述。
功能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標準加密改寫,該功能詳細介紹請參見控制台配置說明配置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", }
安全配置
tmd_signature
功能說明:配置頻次控制自訂規則,該功能詳細介紹請參見控制台配置說明配置頻次控制。
功能ID(FunctionID/FuncId):96。
ddos_domain
功能說明:DDoS防護調度,該功能詳細介紹請參見控制台配置說明配置CDN聯動DDoS高防。
功能ID(FunctionID/FuncId):209。
ali_location
功能說明:配置地區封鎖,該功能詳細介紹請參見控制台配置說明地區封鎖。
功能ID(FunctionID/FuncId):57。
allowed_crawlers
threat_intelligence
流量限制
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" }
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
功能說明:規則引擎,該功能能夠使用圖形化的方式來配置各種條件規則。條件規則支援對使用者請求中攜帶的各種參數資訊進行識別,以此來決定某個配置是否對該請求生效,可用於更加靈活、更加精確地控制CDN的各種配置策略的執行效果。該功能詳細介紹請參見控制台配置說明規則引擎。
功能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" }
建立完成的規則引擎配置,可以供其他功能配置時關聯引用(當前支援引用規則引擎配置的功能列表請參見規則引擎),以實現更加靈活、更加精確地控制CDN各種配置策略的執行效果。例如:條件來源站點功能(功能函數是origin_dns_host)的配置就可以關聯引用規則引擎的配置,配置樣本可以參見origin_dns_host。
注意事項:
其他功能在關聯引用規則引擎配置的時候,需要通過設定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" }