HTTP 400 狀態碼 (錯誤的請求)
當用戶端在請求中傳送一些無效資料時,CloudFront 會傳回 400 錯誤的請求,例如承載或參數中的遺失或不正確的內容。這也可以代表一般用戶端錯誤。
Amazon S3 原始伺服器傳回 400 錯誤
如果您使用 Amazon S3 原始伺服器搭配 CloudFront 分佈,分佈可能會傳送錯誤回應,其中包含 HTTP 狀態碼 400 錯誤的請求,以及類似下列的訊息:
授權標頭格式不正確;區域 '<AWS 區域>' 錯誤;應該為 '<AWS 區域>'
例如:
授權標頭格式不正確;區域 'us-east-1' 是錯誤的;應該是 'us-west-2'
在下列情況下可能會發生這個問題:
-
您的 CloudFront 分佈的來源是 Amazon S3 儲存貯體。
-
您將 S3 儲存貯體從一個 AWS 區域移到另一個區域。也就是說,您刪除了 S3 儲存貯體,然後您建立了具有相同儲存貯體名稱的新儲存貯體,但與原始 S3 儲存貯體位於不同的 AWS 區域中。
若要修正此錯誤,請更新您的 CloudFront 分佈,以便在儲存貯體的目前 AWS 區域中找到 S3 儲存貯體。
更新您的 CloudFront 分佈
登入 AWS 管理主控台 並開啟位於 https://console.aws.amazon.com/cloudfront/v4/home
的 CloudFront 主控台。 -
選擇產生此錯誤的分佈。
-
選擇 Origins and Origin Groups (原始伺服器和原始伺服器群組)。
-
尋找您所移動 S3 儲存貯體的原始來源。選取此原始來源旁邊的核取方塊,然後選擇 Edit (編輯)。
-
請選擇 Yes, Edit (是,編輯)。在選擇 Yes, Edit (是、編輯) 之前,不需要變更任何設定。
當您完成這些步驟時,CloudFront 會重新部署您的分佈。在部署分佈時,您會在上次修改的資料欄下看到部署中狀態。部署完成過一段時間後,您應該不會再收到 AuthorizationHeaderMalformed 錯誤回應。
Application Load Balancer 原始伺服器傳回 400 錯誤
如果您使用 Application Load Balancer 原始伺服器搭配 CloudFront 分佈,400 錯誤的可能原因包括下列項目:
-
用戶端傳送不符合 HTTP 規格的格式錯誤請求。
-
請求標頭超過每個請求行 16 KB、每個單一標頭 16 KB,或整個請求標頭 64 KB 的限制。
-
用戶端在傳送完整請求內文之前關閉了連線。