控制 CloudFront 快取錯誤的時間長度 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

控制 CloudFront 快取錯誤的時間長度

CloudFront 快取錯誤回應,預設持續時間為 10 秒。 CloudFront 然後將對象的下一個請求提交給您的來源,以查看導致錯誤的問題是否已解決,並且所請求的對象是否可用。

您可以TTL為每個快取的 4xx 和 5xx 狀態碼指定錯誤快取持續時間 (錯誤快取下限)。 CloudFront (如需詳細資訊,請參閱 HTTP緩存的 4xx 和 5xx 狀態碼 CloudFront 。) 當您指定持續時間時,請注意以下事項:

  • 如果您指定的錯誤快取持續時間較短,則會將更多要求 CloudFront 轉送至來源,而不是指定的持續時間較長。針對 5xx 錯誤,這可能會讓原本導致原始伺服器傳回錯誤的問題加劇。

  • 當您的來源傳回物件的錯誤時,會以錯誤 CloudFront 回應或自訂錯誤頁面回應物件的要求,直到錯誤快取持續時間過去為止。如果您指定了較長的錯誤快取持續時間, CloudFront 可能會在物件再次變為可用後很長一段時間內,以錯誤回應或您的自訂錯誤頁面繼續回應要求。

注意

您可以為HTTP狀態碼 416 (要求的範圍不符合) 建立自訂錯誤頁面,也可以變更原始碼 CloudFront傳回HTTP狀態碼 416 至時傳回給檢視者的狀態碼。 CloudFront(如需詳細資訊,請參閱 變更傳回的回應碼 CloudFront。) 不過, CloudFront 不會快取狀態碼 416 回應,因此即使您指定狀態碼 416 的錯誤快TTL取最小值,也 CloudFront不會使用它。

如果您想要控制個別物件 CloudFront 快取錯誤的時間長度,您可以設定原始伺服器,將適用的標頭新增至該物件的錯誤回應。

如果 origin 新增Cache-Control: max-ageCache-Control: s-maxage指示詞或Expires標頭,會 CloudFront 快取標頭中較大值或錯誤快取下限值的錯誤回應TTL。

注意

Cache-Control: max-ageCache-Control: s-maxage值不能大於針對擷取錯誤頁面之快取行為所設定的「最TTL大值」。

如果來源新增其他Cache-Control指令或未新增標頭,請CloudFront 快取錯誤回應的值為「錯誤快取下限」TTL。

如果物件 4xx 或 5xx 狀態碼的到期時間超過您想要的時間,而且該物件再次可用,您可以使用要求的物件使快取錯誤碼失效。URL如果原始伺服器傳回多個物件的錯誤回應,則您需要個別使每一個物件失效。如需有關使物件失效的詳細資訊,請參閱使檔案無效以移除內容