我正在使用 Amazon CloudFront 分發來自動提供壓縮物件,但內容未在檢視器中壓縮。在這些情況下,我該如何疑難排解?
解決方案
檢查您的 CloudFront 組態
檢查檢視器的設定
首先,透過
擷取 HTTP 封存 (HAR),取得瀏覽器傳送的詳細請求標頭的相關資訊。然後,確認以下項目:
- 該請求使用的 HTTP 版本高於 HTTP 1.0。在較低版本的 HTTP 中,CloudFront 移除了 Accept-Encoding 標頭,並且不會壓縮回應中的物件。
- Accept-Encoding 標頭包含在檢視器要求中,並且包含 gzip 或 br 值。
確認原始伺服器正在傳回 CloudFront 的回應
如果您可以存取原始伺服器,請檢查原始伺服器正在傳回 CloudFront 的回應。然後,確認以下項目:
- 原始伺服器未傳回 Content-Encoding 標頭。此標頭指示回應已經過壓縮。
- 原始伺服器的回應中存在回應 Content-Length (內容長度),並且在 1,000 個位元組至 10,000,000 個位元組的支援範圍內。
- 檔案類型支援壓縮。
- 回應的 HTTP 狀態碼可以是 200、403 或 404。
如果您觀察到物件的快取命中,請從快取中將其停用。開啟壓縮映像設定時,CloudFront 不會壓縮已在邊緣站點快取的物件。CloudFront 會在邊緣快取發出請求時,傳回 "X-Cache: Hit from CloudFront" (X-Cache︰從 CloudFront 命中) 回應。