令牌校正影響CDN緩衝的解決方案

更新時間:
Copy as MD

背景資訊

如果您已經接入DCDN並配置了緩衝規則,同時啟用了WAF令牌校正,但是WAF在令牌校正時會在URL中隨機插入參數,導致請求未能命中DCDN緩衝規則,直接存取後端來源站點。這會增加來源站點的負載和壓力,導致效能下降、回應時間延長,並增加潛在的安全風險。為瞭解決這一問題,您可以通過自訂CacheKey忽略這些參數,從而繼續利用DCDN緩衝,降低回源率。

前提條件

方案概覽

本文以使用DCDN為例,配置自訂CacheKey只需2步:

  1. 配置自訂CacheKey:忽略URL中的被插入的隨機參數,從而提高緩衝的命中率,降低回源率,減少請求的回應時間和頻寬消耗。

  2. 測實驗證:對配置進行全面測試,確保緩衝策略、WAF令牌校正和自訂CacheKey配置正確無誤並正常運行。

說明

如果您使用的是阿里雲CDN,則其配置方法相同。

架構圖

步驟一:配置自訂CacheKey

1. 擷取令牌參數名

在配置自訂 CacheKey 之前,您需要通過瀏覽器訪問目標網站觸發令牌校正以擷取相關的參數名。

https://xxx/xxxdc.html?md5__1524=eqRxuD9iDtKCqAKD%3DD%2FD0i5twcbDRiYPx6moD
說明

令牌校正插入的參數名稱針對不同網域名稱是隨機產生的,但某個網域名稱下所有請求插入的令牌參數名是固定的,其格式為XXX__隨機數字,其中XXX可以是下面任意一個單詞。

timestamp、md5、type、ipcity、decode、encode、time、refer。

2. 配置自訂CacheKey

  1. 登入DCDN控制台,在左側導覽列,單擊域名管理後,單擊目標網域名稱操作列的配置

  2. 在指定網域名稱的左側導覽列,單擊緩衝配置,選擇自訂CacheKey頁簽,單擊配置

    說明

    支援對URI、請求參數、HTTP HEADER進行修改,同時支援自訂變數,從請求中提取需要的欄位。最終的Cachekey將由URI、請求參數、HTTP HEADER、自訂變數四部分組合而成。

  3. 自訂Cachekey對話方塊中,參數操作選擇刪除,並輸入擷取的令牌參數名。其他配置詳情,請參見自訂Cachekey參數說明

步驟二:測實驗證

對配置進行全面測試,確保緩衝策略、WAF令牌校正和自訂CacheKey配置正確無誤並正常運行。

瀏覽器開啟開發人員工具訪問網站,單擊Network,查看Response Headers資訊。如果存在X-Cache頭且值包含HIT關鍵字,則表明配置生效命中快取資料。

說明

X-Cache表示是否命中緩衝,MISS表示不命中,HIT表示命中。

Response Headers
Accept-Ranges:              bytes
Age:                        7
Ali-Swift-Global-Savetime:  1730188630
Connection:                 keep-alive
Content-Length:             14
Content-Type:               text/html; charset=UTF-8
Date:                       Tue, 29 Oct 2024 07:57:10 GMT
Eagleid:                    7521a19d17301886372938421e
Etag:                       "e-625470f0c1bb7"
Last-Modified:              Fri, 25 Oct 2024 06:16:25 GMT
Server:                     Tengine
Timing-Allow-Origin:        *
Via:                        cache19.l2cn3137[58,57,200-0,M], cache11.l2cn3137[60,0], kunlun4.cn7737[0,0,200-0,H], kunlun9.cn7737[1,0]
X-Cache:                    HIT TCP_MEM_HIT dirn:-2:-2
X-Swift-Cachetime:          86400
X-Swift-Savetime:           Tue, 29 Oct 2024 07:57:10 GMT