本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudFront 傳回的變更回應代碼
您可以將 CloudFront 設定為傳回不同 HTTP 狀態碼給檢視器,而非 CloudFront 從原始伺服器接收的狀態碼。例如,如果您的原始伺服器傳回 500 狀態碼到 CloudFront,您可能會希望 CloudFront 傳回自訂錯誤頁面和 200 狀態碼 (OK) 給檢視器。基於各種原因,您想要讓 CloudFront 傳回狀態碼到檢視器,該檢視器與原始伺服器傳回到 CloudFront 的檢視器不同:
-
有些網際網路裝置 (例如,一些防火牆和公司代理) 會攔截 HTTP 4xx 和 5xx 狀態碼並禁止回應傳回給檢視器。在此案例中,如果您替換
200
,回應不會攔截。 -
如果您不在意區別不同的用戶端錯誤或伺服器錯誤,您可以指定
400
或500
作為 CloudFront 為所有 4xx 或 5xx 狀態碼傳回的值。 -
您會希望傳回
200
狀態碼 (OK) 與靜態網站,如此您的客戶便不會知道您網站已關閉。
如果您啟用 CloudFront 標準日誌並設定 CloudFront 來變更回應中的 HTTP 狀態碼,則日誌中的 sc-status
欄位值會包含您指定的狀態碼。不過,x-edge-result-type
資料行的值不會受到影響。它包含來自原始伺服器回應的結果類型。例如,當原始伺服器傳回 200
(找不到) 給 CloudFront 時,假設您配置 CloudFront 傳回 404
的狀態碼給檢視器。當原始伺服器回應 404
狀態碼的請求時,在日誌中 sc-status
資料行的值會是 200
,但 x-edge-result-type
資料行的值則會是 Error
。
您可以配置 CloudFront 傳回下列任何 HTTP 狀態碼以及自訂錯誤頁面:
-
200
-
400, 403, 404, 405, 414, 416
-
500、501、502、503、504