在AEM as a Cloud Service中停用Fastly CDN快取
Fastly一律是AEM as a Cloud Service內容傳遞路徑的一部分,無法移除。 遺失Cache-Control或Surrogate-Control標頭、覆寫或跨資源套用不一致時,會發生非預期的快取。 在使用客戶管理的CDN的環境中,不正確的轉送標頭也會影響快取行為和重新導向處理。
若要解決此問題,請正確設定cache-control標頭、驗證CDN設定,以及驗證Fastly傳遞行為。
說明 description
環境
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- 自備CDN (BYOCDN)部署
- Dispatcher設定
- 使用
cdn.yaml的CDN組態
問題/症狀
- 當預期快取略過時,Fastly
x-cache標題會顯示MISS或SYNTH。 - Fastly會快取特定檔案型別,儘管已設定快取控制標頭。
Surrogate-Control或Surrogate-Key標頭未出現在邊緣。- 個人化內容顯示不一致的行為,因為會重複使用快取片段。
- 當請求通過多個CDN層時,會發生非預期的重新導向。
原因
Fastly是Adobe Experience Manager as a Cloud Service傳送架構不可或缺的元件,並始終保留在請求路徑中。 Fastly會在Cache-Control或Surrogate-Control標頭遺失、不完整、被覆寫或在不同資源型別間套用不一致時快取內容。 某些資產型別(例如.vtt files)需要明確的快取控制規則。 在BYOCDN部署中,不正確的X-Forwarded-Host或X-Forwarded-Proto標頭可能會建立不同的快取金鑰,導致非預期的快取或重新導向行為。
解決方法 resolution
請依照下列步驟解決問題
- 檢閱回應標頭,並確認受影響回應中是否顯示
Cache-Control和Surrogate-Control。 - 確認
Surrogate-Control包含防止Fastly快取的值,例如max-age=0或no-store。 - 更新Dispatcher虛擬主機設定,以便在HTML、JSON、資產和其他資源型別中一致地套用
Cache-Control和Surrogate-Control標頭。 為未繼承所需標頭的資源型別新增明確規則。 - 確認客戶管理的CDN沒有覆寫Fastly快取控制指令。
- 請檢閱CDN記錄並確認客戶管理的CDN會執行快取,而Fastly則會以傳遞模式運作。
- 如果標頭型控制項未達到預期行為,請在
cdn.yaml中設定略過快取。 透過Cloud Manager部署更新的設定,並驗證部署是否成功完成。 - 透過確認原始
Host標頭和X-Forwarded-Proto標頭在整個CDN鏈結中正確轉送來驗證多CDN路由。 - 審查片段快取實作,並確保不會快取個人化片段。
- 確認動態回應會傳回適當的不可快取的標頭。
- 設定當清除工作流程依賴金鑰式失效時的
Surrogate-Key標頭。 - 啟用Fastly偵錯並驗證代理金鑰是否出現在回應標題中。
- 透過確認Fastly傳回PASS、客戶管理的CDN如預期快取,以及快取清除作業的行為正確來驗證最終設定。
相關閱讀
- AEMaaCS CDN管理和快取
- 如何停用CDN快取
- Surrogate-Control標頭參考
- 使用Open API在Dynamic Media中進行快取管理
- Dispatcher概觀
recommendation-more-help
experience-cloud-kcs-help-kbarticles