本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
控制 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-age
或Cache-Control:
s-maxage
指示詞或Expires
標頭,會 CloudFront 快取標頭中較大值或錯誤快取下限值的錯誤回應TTL。
注意
Cache-Control: max-age
和Cache-Control: s-maxage
值不能大於針對擷取錯誤頁面之快取行為所設定的「最TTL大值」。
如果來源新增其他Cache-Control
指令或未新增標頭,請CloudFront 快取錯誤回應的值為「錯誤快取下限」TTL。
如果物件 4xx 或 5xx 狀態碼的到期時間超過您想要的時間,而且該物件再次可用,您可以使用要求的物件使快取錯誤碼失效。URL如果原始伺服器傳回多個物件的錯誤回應,則您需要個別使每一個物件失效。如需有關使物件失效的詳細資訊,請參閱使檔案無效以移除內容。