CDN加速靜態資源時,將源站上的資源緩存到距離客戶端最近的CDN節點上。當您訪問該靜態資源時,可直接從緩存中獲取,本文主要介紹如何設置服務器端的緩存過期時間。
詳細信息
過期時間控制支持三個維度,優先級依次為控制臺設置>源站Header設置>Cache的默認策略設置。
關于控制臺設置的詳細說明,請參見配置緩存過期時間。
關于源站Header設置的詳細說明,請參見WebServer緩存策略設置。
Cache的默認策略是在您既沒有在控制臺設置過期時間,也沒有在源站設置過期時間的情況下,會執行一個默認的全局策略,既保證加速效果,又避免因為動態的文件緩存導致的問題。關于Cache的默認策略設置的詳細說明,請參見CDN節點默認緩存策略。
說明關于OSS緩存策略設置,請參見管理文件元數據。
WebServer緩存策略設置
設置Nginx緩存策略詳細操作,請參見設置Nginx緩存策略。
設置Apache緩存策略詳細操作,請參見設置Apache緩存策略。
設置IIS緩存策略詳細操作,請參見設置IIS緩存策略。
CDN節點默認緩存策略
因為網站開發及其相關技術人員更清楚自身網站的業務邏輯、靜態和動態因素,所以建議您通過控制臺根據文件類型和文件所在目錄,詳情請參見配置緩存過期時間。
如果您已經配置了緩存策略,那么Cache的默認緩存策略不生效。
默認情況下,CDN節點將根據公式計算出默認的緩存時間。為了便于理解,此處將介紹默認緩存時間的計算公式和相關示例。
計算公式。該公式分為如下三個步驟。
說明緩存時間為t,單位為秒(s);Curtime為當前時間,Last_Modified為源站的Last-Modified響應頭。
計算t1的值。
t1 = (Curtime - Last_Modified) * 0.1
將上一步計算的t1之與10進行比較,取最大值為t2。
t2 = max(10,t1)
通過上一步計算的t2值與3600進行比較,取最小值為t,則t為緩存時間。
t = min(t2,3600)
示例如下。
當對象的
Last-Modified
為20140801 00:00:00
,當前時間Curtime為20140801 00:10:00
,則t1=(Curtime-Last_modified)*0.1=60s,t2=max(10,t1)=60s,t=min(t2,3600)=60s,那么緩存時間為60s。當對象的
Last-Modified
為20140801 00:00:00
,當前時間Curtime為20140802 00:00:00
,則t1=(Curtime-Last_modified)*0.1=8640s,t2=max(10,t1)=8640s,t=min(t2,3600)=3600s,那么緩存時間為3600s。當對象的
Last-Modified
為20140801 00:00:00
,當前時間Curtime為20140801 00:01:00
, 則t1=(Curtime-Last_modified)*0.1=6s,t2=max(10,t1)=10s,t=min(t2,3600)=10s,那么緩存時間為10s。
如果源站沒有
Last-Modified
響應頭,但有ETag
,則該對象極有可能是靜態資源,將其默認緩存時間設置為dft_expires
指令配置的最小值。如果源站沒有
Last-Modified
響應頭,也沒有ETag
,則認為該對象為動態內容,將其默認緩存時間設置為0,每次都回源。