本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
HTTP 503 狀態碼 (服務無法使用)
HTTP 503 狀態碼 (服務無法使用) 通常表示原始伺服器上的效能問題。在極少數情況下,這表示 CloudFront 因為節點上的資源限制,暫時無法滿足請求。
如果您使用的是 Lambda@Edge 或 CloudFront Functions,問題可能是執行錯誤或 Lambda@Edge 超過限制錯誤。
如果您使用的是原始交互 TLS (原始 mTLS),問題可能是因為重複嘗試建立與特定憑證的連線失敗。
主題
原始伺服器沒有足夠的容量來支援請求率
當原始伺服器無法使用或無法提供傳入請求時,它會傳回 HTTP 503 狀態碼 (服務無法使用)。然後 CloudFront 將此錯誤傳回給使用者。若要解決這個問題,請嘗試下列解決方案:
-
如果您使用 Amazon S3 做為原始伺服器:
-
您可以傳送每個分割的 Amazon S3 字首每秒 3,500 個 PUT/COPY/POST/DELETE 和 5,500 個 GET/HEAD 請求。當 Amazon S3 傳回 503 慢速下降回應時,這通常表示針對特定 Amazon S3 字首的請求率過高。
由於請求率適用於 S3 儲存貯體中的每個字首,因此物件應分散到多個字首。隨著字首上的請求率逐漸增加,Amazon S3 會向上擴展以分別處理每個字首的請求。因此,儲存貯體能處理的整體請求率為字首數的倍數。
-
如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的最佳化 Amazon S3 效能。
-
-
如果您使用 Elastic Load Balancing 做為原始伺服器:
-
確定您的後端執行個體可以回應運作狀態檢查。
-
確定您的負載平衡器和後端執行個體可以處理負載。
如需詳細資訊,請參閱:
-
-
如果您使用自訂原始伺服器:
-
檢查應用程式日誌,以確保原始伺服器有足夠的資源,例如記憶體、CPU 和磁碟大小。
-
如果使用 Amazon EC2 做為後端,請確保執行個體類型都有適當的資源,以符合傳入的請求。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的執行個體類型。
-
-
如果您使用 API Gateway:
-
此錯誤與當 API Gateway API 無法接收回應時的後端整合有關。後端伺服器可能:
-
超載超過容量,無法處理新的用戶端請求。
-
臨時維護中。
-
-
若要解決此錯誤,請查看您的 API Gateway 應用程式日誌,以判斷後端容量、整合或其他問題。
-
CloudFront 由於節點上的資源限制導致錯誤
在極少數的情況下,您會收到此錯誤,CloudFront 無法將請求路由到下一個最佳的可用節點,也因此無法滿足請求。在 CloudFront 分佈中執行負載測試時,常見此錯誤。為協助防止此種情況,請遵循 負載測試 CloudFront 準則,以避免 503 (容量超過) 錯誤。
如果您的生產環境中發生這種情況,請聯絡 支援
CloudFront 導致使用交互 TLS 設定的原始伺服器發生錯誤
如果您的分佈使用交互 TLS (mTLS) 連接到自訂原始伺服器,則當 CloudFront 無法建立與原始伺服器的連線時,可能會傳回 HTTP 503 狀態碼。當原始伺服器重複無法完成 TLS 交握,或由於 DNS 或連線問題而無法連線時,就會發生這種情況。此條件是暫時的 — 再次連線原始伺服器時,CloudFront 會自動恢復正常流量。
若要解決此問題:
-
確認正確的用戶端憑證與您的分佈相關聯,且尚未過期。如果您最近更新了憑證,請預留時間讓變更生效之前傳播。
-
確認原始伺服器可連線,且 DNS 記錄可正確解析。
如果問題在生產環境中設定適當的憑證仍存在,請聯絡 支援
Lambda@Edge 或 CloudFront Function 執行錯誤
如果您使用 Lambda@Edge 或 CloudFront Functions,HTTP 503 狀態碼可能表示您的函數傳回執行錯誤。
如需如何識別和解決 Lambda@Edge 錯誤的詳細資訊,請參閱 測試和偵錯 Lambda@Edge 函數。
如需測試 CloudFront Functions 的詳細資訊,請參閱 測試函數。
超過 Lambda@Edge 限制
如果您使用 Lambda@Edge,HTTP 503 狀態碼可能表示 Lambda 傳回了錯誤。此錯誤可能由以下其中一項原因造成:
-
函數執行次數超過 Lambda 設定以調節 AWS 區域 (並行執行或調用頻率) 執行的其中一個配額。
-
此函數已超過 Lambda 函數逾時配額。
如需 Lambda@Edge 配額的詳細資訊,請參閱 Lambda@Edge 的配額。如需如何識別和解決 Lambda@Edge 錯誤的詳細資訊,請參閱 測試和偵錯 Lambda@Edge 函數。您也可以參閱《AWS Lambda 開發人員指南》中的 Lambda 服務配額。