規則相關的功能在以下三個特性上存在差異。本文將對這三個特性的概念進行詳細說明,並明確每個規則相關功能的特性差異。
規則配置和全域配置的生效優先順序
規則配置優先順序高於全域配置:針對同一個功能,規則中配置的生效優先順序更高。因此您可以在基礎的通用功能配置上,通過規則來對特定的請求生效特定的功能配置。
以邊緣節點緩衝到期時間為例,若您在全域配置-邊緣緩衝到期時間中配置了邊緣到期時間為12小時,並且在規則-配置邊緣緩衝到期時間中配置了
/content下的資源在邊緣節點上的到期時間為30天。那麼當請求的資源路徑在/content路徑下時,邊緣節點將把該資源的緩衝到期時間調整為30天。對於請求的資源不在/content路徑下,則在邊緣節點中會統一調整緩衝到期時間為12小時。規則列表中順序越靠前的優先順序越高:針對同一個規則功能,規則執行的順序是從上到下,依次執行。因此在實際業務使用中,當請求同時符合多個規則的觸發條件時,您可以將您期望優先執行的動作通過拖拽
按鈕調整至更靠上的位置。說明不同套餐支援的功能和規則條數不相同,各類型套餐的規則條數配額可參考:規則與套餐的配額說明。
以緩衝規則為例,如果您同時存在以下2條規則:
規則1:
/content路徑下的資源到期時間為30天。規則2:尾碼為
.jpg的檔案快取時間為60天。若配置了規則1的順序在上,規則2的順序在下。對於不同的資源的在邊緣節點上的緩衝時間為:
URL樣本
在
/content路徑下.jpg尾碼緩衝到期時間
https://example.com/content/static/pic.jpg30天
https://example.com/content/static/book.txt30天
https://example.com/static/pic.jpg60天
https://example.com/static/res/book.text不緩衝
若配置了規則2的順序在上,規則1的順序在下。對於不同的資源的在邊緣節點上的緩衝時間為:
URI樣本
在
/content路徑下.jpg尾碼緩衝到期時間
https://example.com/content/static/pic.jpg60天
https://example.com/content/static/book.txt30天
https://example.com/static/pic.jpg60天
https://example.com/static/res/book.text不緩衝
規則功能的可重新進入性
功能模組的可重新進入性指的是某個指令是否可以安全地在多個階段、多次調用,並且每次調用的行為是獨立的、疊加的、互不影響的。
可重新進入的功能
在一個請求的處理過程中,可重新進入的功能可以被多次調用,並且每次調用的行為是獨立的、疊加的、互不影響的,例如:修改出站要求標頭功能是可重新進入功能,同一個用戶端請求如果匹配上多個規則條件,則對應的每個規則配置都會執行。
樣本1:修改出站要求標頭
假如一個使用者請求同時匹配條件B和條件C,那麼配置2和配置3都會執行,全域配置也會執行,但是因為全域配置沒有設定執行動作,因此沒有影響,最終執行結果是使用者請求將會被加上以下2個要求標頭:
animal: cat
fruit: apple
序號 | 規則配置 | 規則條件 | 功能配置 | 是否執行 |
1 | 規則配置1 | 條件A(不匹配) | 新增一個要求標頭,要求標頭名稱為food,要求標頭值為rice。 | 否 |
2 | 規則配置2 | 條件B | 新增一個要求標頭,要求標頭名稱為animal,要求標頭值為cat。 | 是 |
3 | 規則配置3 | 條件C | 新增一個要求標頭,要求標頭名稱為fruit,要求標頭值為apple。 | 是 |
全域配置 | 無 | 無 | 是 | |
不可重新進入的功能
在一個請求的處理過程中,不可重新進入的功能只能被調用一次,調用結束以後就跳出對應的功能模組。同一個用戶端請求如果匹配上多個規則條件,則只有第一個匹配上的規則配置會執行。
樣本2:重寫URL
假如一個使用者請求同時符合條件B和條件C,那麼僅配置2會執行,由於規則配置2序號靠前,先匹配上了條件B,執行結果是使用者請求URL的路徑被改寫為/animal:
原始請求:http://example.com/test
重寫後的請求:http://example.com/animal
序號 | 規則配置 | 規則條件 | 功能配置 | 是否執行 |
1 | 規則配置1 | 條件A(不匹配) | 將使用者請求URL的路徑被改寫為/food。 | 否 |
2 | 規則配置2 | 條件B | 將使用者請求URL的路徑被改寫為/animal。 | 是 |
3 | 規則配置3 | 條件C | 將使用者請求URL的路徑被改寫為/fruit。 | 否 |
全域配置 | 無 | 無 | 否 | |
規則配置的生效顆粒度
規則配置的生效顆粒度包含功能維度和子功能維度。
功能維度
規則作用於整個功能模組,配置按整個功能模組生效。
使用者請求匹配上某個規則條件時,如果某個子功能模組的配置為空白,則該子功能模組將按照未添加配置來執行。
樣本1:SSL/TLS規則(不可重新進入功能,並且規則配置按功能維度生效)
假設使用者請求同時符合條件 B 和條件 C,由於規則配置2序號靠前,先匹配上了條件B,則僅執行配置 2,其中 TLS 加密套件為空白的部分按預設設定生效。
序號 | 規則配置 | 規則條件 | SSL/TLS加密 | TLS加密套件與協議版本配置 | OCSP Stapling | HTTP/2 | HTTP/3(QUIC) | 是否執行 |
1 | 規則配置1 | 條件A(不匹配) | 開啟 | - | 關閉 | 關閉 | 關閉 | 否 |
2 | 規則配置2 | 條件B | 開啟 | - | 關閉 | 關閉 | 關閉 | 是 |
3 | 規則配置3 | 條件C | 開啟 | - | 開啟 | 開啟 | 開啟 | 否 |
全域配置 | 無 | 關閉 | - | 關閉 | 開啟 | 開啟 | 否 | |
子功能維度
規則作用於子功能模組,配置按子功能模組生效。
使用者請求匹配上某個規則條件時,如果某個子功能模組的配置為空白,則該子功能模組將繼續往下匹配規則條件,直到命中規則條件的同時,子功能模組的配置不為空白。
樣本2:緩衝規則(不可重新進入功能,並且規則配置按子功能維度生效)
以下為緩衝規則配置樣本。假設使用者請求同時符合條件 B、C 和 D,按照序號從小到大匹配則各子功能,未配置項按全域預設設定執行。
序號 | 配置 | 規則條件 | 緩衝資格 | 瀏覽器緩衝到期時間 | 邊緣緩衝到期時間 | 自訂CacheKey | 連接埠緩衝 | 響應到期緩衝 | 緩衝保持 |
1 | 規則配置1 | 條件A(不匹配) | 符合緩衝條件 | - | 優先遵循來源站點緩衝策略(如果存在),否則不緩衝 | - | - | 關閉 | - |
2 | 規則配置2 | 條件B | 符合緩衝條件 | - | 優先遵循來源站點緩衝策略(如果存在),否則不緩衝 | - | - | 關閉 | - |
3 | 規則配置3 | 條件C | 繞過緩衝 | 不緩衝 | - | - | - | - | - |
4 | 規則配置4 | 條件D | 符合緩衝條件 | - | 忽略來源站點緩衝策略,使用自訂緩衝TTL=1小時 | 忽略查詢字串 | - | 關閉 | - |
5 | 規則配置5 | 條件E | 符合緩衝條件 | - | - | - | - | 關閉 | - |
全域配置 | 無 | - | - | - | - | 預設關閉 | - | 預設關閉 | |
最終生效配置 | 符合緩衝條件 | 不緩衝 | 優先遵循來源站點緩衝策略(如果存在),否則不緩衝 | 忽略查詢字串 | 關閉 | 關閉 | 關閉 | ||
不同功能特性差異表
功能分類 | 規則功能名稱 | 規則功能的可重新進入性 | 規則配置的生效顆粒度 | 規則配置的生效優先順序 |
SSL/TLS | 不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
不可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
轉換規則 | 不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
重新導向 | 不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
緩衝 | 不可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
內容最佳化 | 不可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
不可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
不可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
網路最佳化 | 不可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
回源 | 不可重新進入 | 子功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
組態管理 | 不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
流量 | 不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 需要注意是否設定了結束動作:
| ||
安全防護 | 不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | |
不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 | ||
不可重新進入 | 功能 | 按照規則列表的序號,序號越小,優先順序越高。 |