CDN緩衝清理機制是什嗎?
緩衝存在CDN節點上的資源,如果該資源的訪問熱度較低(同一個CDN節點上的同一個資源被用戶端訪問的頻次較低),那麼很可能會在緩衝到期之前被CDN節點上其他訪問熱度較高的資源覆蓋。
CDN預設的緩衝規則是什嗎?
CDN節點在收到來源站點響應的靜態檔案資源的時候,會按照以下的緩衝規則來執行(數值越小,優先順序越高):
來源站點響應pragma:no-cache
、cache-control:no-cache
(或者no-store
,或者max-age=0
)時,不緩衝。
CDN控制台設定的緩衝到期時間或者狀態代碼到期時間。
說明
若CDN請求同時命中多條規則,有且僅有一條規則會生效,優先順序為:權重>規則建立時間。
來源站點配置其他緩衝規則,優先順序由高至低為:cache-control
>expires
>last-modified
>ETag
。
來源站點響應中使用cache-control
設定到期時間,取值為max-age
或s-maxage
,並且max-age
或s-maxage
的值大於0,例如:cache-control:max-age=3600。如果同時存在max-age
和s-maxage
,則以s-maxage
的值為準。
來源站點響應中使用expires
設定到期時間,例如:expires:Tue, 25 Nov 2031 17:25:43 GMT。
來源站點響應中攜帶了ETag
或last-modified
,則使用以下規則來計算緩衝時間:
有last-modified
,使用公式(目前時間-last-modified
)* 0.1,計算結果在10秒~3600秒之間的,取計算結果時間;小於10秒的,按照10秒處理;大於3600秒的,按照3600秒處理。
只有ETag
,緩衝10秒。
來源站點返回的資料中ETag
、last-modified
、cache-control
和expires
這些緩衝相關的回應標頭都沒有攜帶,則預設不緩衝。
如何判斷CDN緩衝是否成功?
阿里雲CDN對於檔案是否支援緩衝,您可以通過檢查HTTP回應標頭中的相關欄位來判斷。
X-Cache
: 表示請求是否命中CDN緩衝。值為HIT表示命中,MISS或者欄位不存在表示未命中。
Age
: 表示檔案在CDN節點上緩衝的時間(秒)。檔案被重新整理或首次訪問無此欄位。Age
為0表示緩衝到期,需回源校正。
X-Swift-CacheTime
: 表示檔案在CDN節點上的允許緩衝時間。計算剩餘緩衝時間:X-Swift-CacheTime
– Age
。
X-Swift-SaveTime
:表示資源首次被緩衝到CDN節點上的時間(GMT)。轉換為中國北京時間需加上8小時。
為了查看這些HTTP回應標頭,您可以通過以下兩種方式查看您的內容是否緩衝到CDN:
方式1:使用瀏覽器的開發人員工具(如Chrome的開發人員工具)

方式2:使用curl命令查看資源緩衝情況
curl "http://example.com/path/to/response.html" -voa

如何設定檔案不緩衝直接回源?
根據您的需求,針對不希望緩衝的資源,按照目錄、檔案路徑、檔案類型設定對應的緩衝時間,設定如下:
类型:選擇目录或文件后缀名。
地址:填寫您不想緩衝的具體資源路徑或檔案名稱尾碼,例如php,jsp,asp
類型的動態檔案和admin
目錄下的所有檔案。
过期时间:設定為“0”,表示不緩衝該類型的資源。
权重:可按照需要調整權重值,權重越高,優先順序越強。
詳情請參見配置緩衝到期時間。

在CDN控制台緩衝到期時間設定為0,為何訪問到的資源仍然不是最新內容?
在CDN控制台將緩衝到期時間設定為0,目的是每次請求都直接回來源站點擷取最新內容。然而,如果您發現訪問到的資源仍然不是最新的內容,可能有幾個原因:
瀏覽器本機快取:瀏覽器可能緩衝了舊內容。建議清除瀏覽器緩衝或使用無痕模式測試。
配置生效延遲:設定緩衝時間為0後,可能需要時間讓所有CDN節點生效。另外,如果CDN節點未檢測到更改,可能仍返回舊緩衝。
來源站點緩衝未重新整理:來源站點伺服器可能有緩衝機制,未及時更新時,CDN節點回源可能擷取舊緩衝。
節點緩衝清除延遲:修改配置前已緩衝的資源可能需要時間清除。您可以手動重新整理緩衝,確保立即擷取最新內容,詳情請參見重新整理或預熱資源。
來源站點變更檔案後,CDN節點上的緩衝會主動、即時更新嗎?
來源站點變更檔案後,CDN節點上的緩衝不會主動、即時更新。緩衝更新取決於配置的緩衝策略。
影響CDN快取命中率下降的因素有哪些?
影響阿里雲CDN快取命中率下降的因素如下:
重新整理緩衝:手動或自動重新整理快取作業可能導致短時間內命中率下降。
頻寬突增:當頻寬在短時間內大幅度增加時,會導致CDN節點回源請求增多,從而降低快取命中率。
CDN節點訪問新內容:如果CDN節點頻繁訪問首次請求的新內容,也會導致回源較多,進而表現出快取命中率的下降趨勢。
緩衝規則調整:對CDN緩衝策略進行修改或調整可能會影響快取命中率,例如未配置合適的緩衝到期時間或者緩衝原則設定不當。
URL中帶有可變參數:URL中問號(?)後的參數變化會導致不同的URL請求被視為不同的資源,即使實際指向的是同一份內容,這也會造成CDN快取命中率降低。
未合理配置緩衝到期時間:對於不同更新頻率的靜態檔案,如未根據實際情況設定合理的緩衝到期時間,可能會導致緩衝資源過早失效,從而影響快取命中率。
更多情境關於影響快取命中率的因素介紹請參見提高CDN快取命中率。具體可參見重新整理和預熱資源、忽略參數和配置緩衝到期時間。
如何設定緩衝全域生效?
您可以通過設定緩衝到期時間來實現緩衝全域生效。設定時,类型選擇目录後,在地址欄用正斜線(/)匹配所有目錄。具體操作請參見配置緩衝到期時間。
緩衝配置為什麼沒有生效?
如果您配置了緩衝規則,在使用過程中發現此緩衝規則未生效,可能是以下原因:
生效延遲:緩衝規則的修改或新增通常需要一段時間才會生效,請您在規則生效後再驗證。
緩衝更新機制:新規則不會立即應用到已緩衝的內容,需要等到原緩衝到期後才會生效。
緩衝重新整理操作未執行:更改緩衝設定後,如果沒有手動重新整理緩衝,舊的緩衝內容將繼續被提供給使用者,直到自然到期。詳情請參見重新整理和預熱資源。
緩衝回應標頭設定不當:檢查來源站點發送的HTTP回應標頭裡的Cache-Control
和Expires
標題是否正確設定。
緩衝規則有優先順序:若CDN請求同時命中多條規則,優先順序為:權重>規則建立時間。
配置樣本:為加速網域名稱demo.aliyun.com
配置以下緩衝策略,CDN節點回源下載資源http://demo.aliyun.com/image/example.png
,雖然以下兩條規則都匹配到了,但是因為這兩條規則的權重相同,因此要判斷規則建立的時間,先建立的規則優先順序高於後建立的,因為目錄/image這條規則建立的時間更早,所以系統最終生效的是目錄類型這條規則。
通過HTTP回應標頭配置CDN跨域資源共用(CORS)及注意事項
設定適當的HTTP回應標頭,允許來自不同源的請求訪問資源,詳情請參見配置跨域資源共用。
為什麼已經配置了回應標頭Access-Control-Allow-Origin,但是訪問資源仍提示跨域問題,response header中沒有配置的回應標頭?
如果您在阿里雲CDN中配置了Access-Control-Allow-Origin
等回源回應標頭,但用戶端仍遇到跨域問題且回應標頭中沒有這些配置,可能原因如下:
可能的原因
配置未生效或錯誤:配置未正確設定或尚未生效。
CDN緩衝:CDN節點緩衝了舊的回應標頭。
來源站點問題:來源站點的跨域回應標頭與CDN配置衝突。
瀏覽器緩衝:瀏覽器緩衝了舊的響應。
解決方案
驗證配置:確認CDN配置已正確設定並生效。
清除CDN緩衝:使用CDN的重新整理功能清空緩衝,然後再次訪問資源。具體請參見重新整理和預熱資源。
檢查來源站點設定:確認來源站點不會返回與CDN配置衝突的跨域回應標頭。建議統一來源站點和CDN的跨域頭設定。
清除瀏覽器緩衝:清空瀏覽器緩衝,或使用無痕模式測試。
聯絡支援人員:如果問題仍然存在,請聯絡阿里雲CDN支援人員。
節點HTTP回應標頭和回源HTTP回應標頭有什麼區別?
節點HTTP回應標頭和回源HTTP回應標頭在緩衝架構中代表不同環節的HTTP頭部資訊。
因此,節點HTTP回應標頭和回源HTTP回應標頭的區別在於它們的應用情境和控制對象不同。節點HTTP回應標頭用於控制用戶端和CDN節點的緩衝行為,而回源HTTP回應標頭用於控制來源站點與CDN節點之間的緩衝行為。它們通常共同使用,以實現高效、精確的緩衝控制。關於回源HTTP回應標頭的更多資訊,請參見配置回源HTTP回應標頭。