在AEM as a Cloud Service中停用Fastly CDN快取

Fastly一律是AEM as a Cloud Service內容傳遞路徑的一部分,無法移除。 遺失Cache-ControlSurrogate-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-ControlSurrogate-Key標頭未出現在邊緣。
  • 個人化內容顯示不一致的行為,因為會重複使用快取片段。
  • 當請求通過多個CDN層時,會發生非預期的重新導向。

原因

Fastly是Adobe Experience Manager as a Cloud Service傳送架構不可或缺的元件,並始終保留在請求路徑中。 Fastly會在Cache-ControlSurrogate-Control標頭遺失、不完整、被覆寫或在不同資源型別間套用不一致時快取內容。 某些資產型別(例如.vtt files)需要明確的快取控制規則。 在BYOCDN部署中,不正確的X-Forwarded-HostX-Forwarded-Proto標頭可能會建立不同的快取金鑰,導致非預期的快取或重新導向行為。

解決方法 resolution

請依照下列步驟解決問題

  1. 檢閱回應標頭,並確認受影響回應中是否顯示Cache-ControlSurrogate-Control
  2. 確認Surrogate-Control包含防止Fastly快取的值,例如max-age=0或no-store。
  3. 更新Dispatcher虛擬主機設定,以便在HTML、JSON、資產和其他資源型別中一致地套用Cache-ControlSurrogate-Control標頭。 為未繼承所需標頭的資源型別新增明確規則。
  4. 確認客戶管理的CDN沒有覆寫Fastly快取控制指令。
  5. 請檢閱CDN記錄並確認客戶管理的CDN會執行快取,而Fastly則會以傳遞模式運作。
  6. 如果標頭型控制項未達到預期行為,請在cdn.yaml中設定略過快取。 透過Cloud Manager部署更新的設定,並驗證部署是否成功完成。
  7. 透過確認原始Host標頭和X-Forwarded-Proto標頭在整個CDN鏈結中正確轉送來驗證多CDN路由。
  8. 審查片段快取實作,並確保不會快取個人化片段。
  9. 確認動態回應會傳回適當的不可快取的標頭。
  10. 設定當清除工作流程依賴金鑰式失效時的Surrogate-Key標頭。
  11. 啟用Fastly偵錯並驗證代理金鑰是否出現在回應標題中。
  12. 透過確認Fastly傳回PASS、客戶管理的CDN如預期快取,以及快取清除作業的行為正確來驗證最終設定。

相關閱讀

recommendation-more-help
experience-cloud-kcs-help-kbarticles