日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

規則引擎

概述

規則引擎功能能夠使用圖形化的方式來配置各種條件規則。條件規則支持對用戶請求中攜帶的各種參數信息進行識別,以此來決定某個配置是否對該請求生效,可用于更加靈活、更加精確地控制CDN的各種配置策略的執行效果。

背景說明

阿里云CDN產品控制臺提供了配置緩存過期時間、回源參數改寫等諸多基礎功能,這些基礎功能可以滿足大部分常見的通用需求,但是還有一些需求是基礎功能無法滿足的。例如:將包含路徑/example的請求回源到指定源站地址。類似這樣的需求,就需要基礎功能搭配規則引擎,才可以實現較為靈活的自定義配置。另外,阿里云CDN產品還提供了邊緣腳本功能,能夠實現高度靈活的用戶定制需求。

配置能力

基礎功能

基礎功能+規則引擎

邊緣腳本(可編程CDN)

功能實現

常見的通用功能配置

較為靈活的自定義配置

高度靈活的自定義配置

使用場景

常見的通用需求

部分自定義高級配置需求

定制化的用戶需求

上手難度(對用戶技術要求)

配置靈活性

注意事項

  • 單個域名下的規則引擎功能最大支持創建50個規則條件。

  • 單個規則條件中的子條件數量最大不超過20個。

  • 通過控制臺或者OpenAPI來配置的情況下,無法使用正則相關的匹配運算符(包括正則匹配和正則不匹配),但是可以查看已經存在的配置。

  • 通過控制臺或者OpenAPI來配置的情況下,單個域名下所有功能對規則條件的總引用次數最大不超過5次。

  • 規則條件支持嵌套,嵌套層次深度最大限制為3層,不同層級支持獨立的邏輯關系設置。

規則條件的語法說明

一個規則條件由“邏輯判斷運算符”與“條件表達式”構成,具體見下方說明。

邏輯判斷(Logic)

對同一個層級內的條件(包括被嵌套的條件集合)進行邏輯判斷,支持and和or。

  • and(并且):邏輯與運算符,所有條件都為真才會匹配成功。

  • or(或者):邏輯或運算符,其中一個條件為真即可匹配成功。

條件表達式包含的參數

最小粒度的條件表達式包含以下參數:

參數名稱

域名配置功能函數condition中對應的配置參數

參數說明

是否必填

條件匹配

match

表示條件匹配表達式。

邏輯判斷

logic

表示條件匹配表達式的邏輯判斷參數,取值為and和or。

條件判斷內容

criteria

表示條件表達式的判斷內容。

匹配類型

MatchType

表示對用戶請求中攜帶的某一類型信息進行匹配。

匹配對象

MatchObject

表示對匹配類型進行進一步的細分,例如:客戶端IP可以進一步細分為“建聯IP”和“XFF IP”。

匹配運算符

MatchOperator

表示匹配操作執行的具體動作。

匹配值

MatchValue

表示預先設定的匹配值,將會與用戶請求中攜帶的信息進行匹配。

條件判斷值取反

negate

表示是否對條件表達式的結果取反,取值為true和false。

大小寫敏感

caseSensitive

表示對匹配值中的字符是否大小寫敏感。

規則條件名稱

name

表示規則條件的名稱。

生效狀態

status

表示規則條件的生效狀態。

條件表達式的配置方法

匹配類型名稱

域名配置功能函數condition中對應的配置參數

匹配類型含義

匹配對象

匹配運算符

匹配值

大小寫敏感

對應nginx/tengine

協議類型

scheme

客戶端請求使用的協議類型,例如:HTTP、HTTPS。

不涉及

  • 等于

  • 不等于

  • http

  • https

不涉及

$scheme

請求方法

method

客戶端請求使用的請求方法,例如:GET、PUT。

不涉及

  • 等于

  • 不等于

  • get

  • put

  • post

  • delete

  • head

不涉及

$request_method

URI(路徑)

uri

客戶端請求URL中的路徑,不含請求參數,例如:/favicon.ico

不涉及

  • 包含其中任意一個

  • 不包含其中任意一個

支持通配符?*, 例如:填寫 /*/my_path/*,支持輸入多個值。

  • 區分大小寫

  • 忽略大小寫

$raw_uri或$uri

文件名

basename

客戶端請求的文件的名稱,例如:name1。

不涉及

  • 包含其中任意一個

  • 不包含其中任意一個

支持通配符?*,支持輸入多個值。

  • 區分大小寫

  • 忽略大小寫

-

文件擴展名

extension

客戶端請求的文件的后綴名,從右向左識別,識別到第一個".",例如:.mp4

不涉及

  • 包含其中任意一個

  • 不包含其中任意一個

支持通配符?*,支持輸入多個值。

  • 區分大小寫

  • 忽略大小寫

-

Hostname

hostname

客戶端請求攜帶的hostname,匹配順序:請求URL中的host>請求頭HOST中的host。

不涉及

  • 包含其中任意一個

  • 不包含其中任意一個

用戶請求的host,支持輸入多個值。

  • 區分大小寫

  • 忽略大小寫

$host或$http_host

客戶端IP

clientip

客戶端的IP。 支持IPv4(例如1.1.X.X)、IPv6(例如240e:95c:3004:2:3:0:0:XXX)、支持網段(例如20.209.XXX.XXX/31)。

  • 建聯IP

  • XFF IP

說明

建聯IP、XFF IP詳細說明,請參見IP地址校驗模式

  • 包含其中任意一個

  • 不包含其中任意一個

支持填寫IPv6格式IP,例如:240e:XXX:3004:2:3:0:0:3f7,支持網段方式填寫,例如:120.209.XXX.XXX/31,支持輸入多個值。

不涉及

$remote_addr

客戶端IP版本

clientipVer

IPv4或IPv6。

  • 建聯IP

  • XFF IP

說明

建聯IP、XFF IP詳細說明,請參見IP地址校驗模式

  • 等于

  • 不等于

  • v4

  • v6

不涉及

-

用戶網絡運營商

geolocation

客戶端IP歸屬的運營商。

  • 建聯IP

  • XFF IP

說明

建聯IP、XFF IP詳細說明,請參見IP地址校驗模式

  • 包含其中任意一個

  • 不包含其中任意一個

可以通過下拉列表來選擇,可以輸入字符來過濾選項,支持輸入ID或名稱來模糊匹配查詢,支持輸入多個值。

不涉及

$ip_isp_id

用戶IP地理位置

geolocation

客戶端IP所處的地理位置。

  • 建聯IP

  • XFF IP

說明

建聯IP、XFF IP詳細說明,請參見IP地址校驗模式

  • 包含其中任意一個

  • 不包含其中任意一個

可以通過下拉列表來選擇,可以輸入字符來過濾選項,支持輸入ID或名稱來模糊匹配查詢,支持輸入多個值。

不涉及

$ip_country_id

請求參數

querystring

用戶請求URL中攜帶的請求參數。

輸入參數名稱。

  • 存在

  • 不存在

  • 包含其中任意一個

  • 不包含其中任意一個

  • 大于

  • 大于等于

  • 小于

  • 小于等于

支持通配符?*,支持輸入多個值。

  • 區分大小寫

  • 忽略大小寫

$arg_{name}

請求頭

header

用戶請求中攜帶的請求頭。

支持輸入參數名稱,也支持通過下拉列表來選擇參數。

  • 存在

  • 不存在

  • 包含其中任意一個

  • 不包含其中任意一個

  • 大于

  • 大于等于

  • 小于

  • 小于等于

支持輸入多個值。

  • 區分大小寫

  • 忽略大小寫

$http_{name}

Cookie

cookie

請求攜帶的Cookie。

輸入Cookie名稱。

  • 存在

  • 不存在

  • 包含其中任意一個

  • 不包含其中任意一個

  • 大于

  • 大于等于

  • 小于

  • 小于等于

支持通配符?*,支持輸入多個值。

  • 區分大小寫

  • 忽略大小寫

$cookie_{name}

User-Agent

useragent

請求頭里的User-Agent。

不涉及

  • 包含其中任意一個

  • 不包含其中任意一個

可以選擇下拉列表中的值,或者直接輸入UA值,例如:*Chrome/25*,支持通配符?*,支持輸入多個值(最多僅支持配置32個UA,超過這個數量后,配置的UA不生效)。

  • 區分大小寫

  • 忽略大小寫

$http_user_agent

Range分桶

range

將客戶端請求分桶,按百分比執行。

不涉及

  • 等于

  • 不等于

輸入百分比的數值。

不涉及

-

時間

time

客戶端請求發生的時間,時區為東八區(北京時間),例如:09:10~14:22。

不涉及

  • 包含其中任意一個

  • 不包含其中任意一個

直接輸入時間段,例如09:10~14:22 ,表示9點10分至14點22分。

不涉及

-

Nginx Var

ngxvar

當上方所有的變量均無法滿足需求時,支持使用Nginx變量來配置,支持的變量詳見Nginx官網:Nginx變量

可以通過下拉列表來選擇或直接輸入變量名,支持$region:$isp這種拼接方式。

  • 存在

  • 不存在

  • 包含其中任意一個

  • 不包含其中任意一個

  • 大于

  • 大于等于

  • 小于

  • 小于等于

支持輸入多個值。

不涉及

${name}

IP地址校驗模式

規則引擎功能的“IP地址校驗模式”分為兩種,使用不同的“IP地址校驗模式”會影響到CDN節點對客戶端IP的判斷:

  • 建聯 IP:該模式匹配的是客戶端與CDN節點之間建連使用的IP,如果客戶端與CDN節點之間有經過代理服務器,那么建聯IP=代理服務器IP。

  • XFF IP:該模式匹配的是用戶請求中x-forwarded-for請求頭攜帶的左邊第一個IP,不論客戶端與CDN節點之間是否有經過代理服務器,XFF IP都=客戶端真實IP。

選擇使用哪一種“IP地址校驗模式”主要取決于用戶請求在經過CDN節點時,中間是否有經過代理服務器。

需要注意,引用規則條件的功能在CDN節點上的生效位置也會影響到對“IP地址校驗模式”的選擇(對于在L2節點上生效的回源配置相關功能而言,用戶請求經過的L1節點就相當于中間經過了代理服務器)。

示例:假設客戶端真實IP為10.10.10.10,代理服務器IP為192.168.0.1

  • 沒有經過代理服務器:

    • 用戶請求中x-forwarded-for請求頭值:10.10.10.10

    • 客戶端真實IP(即x-forwarded-for請求頭攜帶的左邊第一個IP)=客戶端與CDN節點建連IP=10.10.10.10

  • 經過代理服務器:

    • 用戶請求中x-forwarded-for請求頭值:10.10.10.10,192.168.0.1

    • 客戶端真實IP(即x-forwarded-for請求頭攜帶的左邊第一個IP)=10.10.10.10

    • 客戶端與CDN節點建連IP=代理服務器IP=192.168.0.1

    • 客戶端真實IP(即x-forwarded-for請求頭攜帶的左邊第一個IP)≠客戶端與CDN節點建連IP。

少數ISP在特定區域可能會分配私有IP地址給用戶端,導致CDN節點接收到的是用戶的私有IP地址。

說明

私有IP地址范圍有以下三個:

  • A類私有IP地址:10.0.0.0~10.255.255.255,子網掩碼:10.0.0.0/8

  • B類私有IP地址:172.16.0.0~172.31.255.255,子網掩碼:172.16.0.0/12

  • C類私有IP地址:192.168.0.0~192.168.255.255,子網掩碼:192.168.0.0/16

匹配運算符(matchOperator)

名稱

域名配置功能函數condition中對應的配置參數

含義

等于

matchOperator為equals。

變量完全等于匹配值或者完全不等于匹配值的時候,條件才成立。

不等于

matchOperator為equals,并且參數negate的值為true。

存在

matchOperator為exists。

變量存在或者不存在時,條件即成立。

不存在

matchOperator為exists,并且參數negate的值為true。

包含其中任意一個

matchOperator為contains。

變量包含(不包含)任意一個匹配值的時候,條件即成立。最多支持32個匹配值。

包含匹配的情況有兩種:

  • 精確匹配:直接輸入匹配對象,包含:a,必須=a才能匹配上。

  • 通配符匹配:可以加入*作為通配符,可以支持配置a**a*a*,可以對應abc、bca、bcabc。

不包含其中任意一個

matchOperator為contains,并且參數negate的值為true。

大于

matchOperator為gt。

>

小于

matchOperator為lt。

<

大于等于

matchOperator為ge。

>=

小于等于

matchOperator為le

<=

正則匹配

matchOperator為regex。

匹配值可以填寫正則表達式,實現對變量的正則匹配。

說明

通過控制臺或者OpenAPI來配置的情況下,無法使用正則相關的匹配運算符(包括正則匹配和正則不匹配),但是可以查看已經存在的配置。

正則不匹配

matchOperator為regex,并且參數negate的值為true。

通配符

通配符號

含義

?

表示匹配任意1個字符。

*

表示匹配任意多個字符。

當前支持引用規則條件的功能

功能分類

功能名稱

基本配置

條件源站

緩存配置

緩存過期時間

自定義HTTP響應頭

訪問URL改寫規則

回源配置

回源HTTP請求頭

回源HTTP響應頭

回源參數改寫

訪問控制

配置Referer防盜鏈

配置URL鑒權

配置IP黑白名單

配置UA黑白名單

性能優化

忽略參數

視頻相關

配置Range回源

流量限制

單請求限速

操作步驟

  1. 登錄CDN控制臺

  2. 在左側導航欄,單擊域名管理

  3. 域名管理頁面,找到目標域名,單擊操作列的管理

  4. 在指定域名的左側導航欄,單擊規則引擎

  5. 單擊添加規則

  6. 添加規則頁面,設置規則名稱規則內容

  7. 單擊提交,完成配置。