我的 Amazon CloudFront 發佈項目收到 "503 Service Unavailable" 錯誤。
若要解決 HTTP 503 狀態代碼 (服務無法使用) 問題,請針對您的錯誤採取下列動作。
如果原始伺服器發生效能問題或伺服器無法使用,那麼您可能會收到 "503 Service Unavailable" 錯誤。
若要對此問題進行疑難排解,請參閱原始伺服器沒有足夠的容量來支援請求速率。
如果 AWS Lambda 函式中存在未處理的例外狀況或程式碼中存在錯誤,那麼您可能會收到 "503 Service Unavailable" 錯誤。
若要修正程式碼,請為 Lambda 函式新增記錄陳述式。檢查您的 Lambda@Edge 日誌和 CloudFront 函式日誌,以確認 CloudFront 是否正常運作。如需詳細資訊,請參閱對 Lambda 中的調用問題進行疑難排解和對 Lambda 中的執行問題進行疑難排解。
如果您超出 Lambda@Edge 配額,Lambda 會阻止 Lambda 函式執行,並且 CloudFront 將傳回 HTTP 503 錯誤。若要解決因超出配額而導致的 HTTP 503 錯誤,請參閱如何對 CloudFront 中,由 Lambda@Edge 函式引起的 502 和 503 錯誤進行疑難排解?
如果您有整合應用程式或您的來源是 Amazon Simple Storage Service (Amazon S3),那麼您可能會收到 HTTP 500 或 503 錯誤。若要解決這些錯誤,請參閱如何對 Amazon S3 的 HTTP 500 或 503 錯誤進行疑難排解?
CloudFront 預設會將錯誤回應從來源轉送到用戶端。CloudFront 會快取來源的錯誤回應 10 秒。
如果來源的錯誤回應包含 Cache-Control 標頭,則 CloudFront 會使用相關的存留時間 (TTL) 來快取錯誤,而不是預設的 10 秒。CloudFront 不會快取自己的錯誤回應,除非在自訂錯誤回應中另有規定。您可以為 HTTP 503 錯誤建立自訂錯誤回應,並將 TTL 設為 0 秒,以防止 CloudFront 快取該錯誤。
若要最佳化快取效率,請使用 CachingOptimized 政策。此政策會將錯誤回應的最小 TTL 設定為 1 秒,而不是預設值 10 秒。如需詳細資訊,請參閱使用受管快取政策。
最佳實務是在您的應用程式中建置重試邏輯,以重試傳回 HTTP 503 錯誤的請求。所有 AWS SDK 都有內建重試機制,包含使用指數退避的演算法。此演算法在連續錯誤回應的重試之間實作越來越長的等待時間。許多指數退避演算法都使用抖動 (隨機延遲) 來防止連續衝突。如需詳細資訊,請參閱重試行為。
rePost-User-3609941
已提問 3 年前
david
已提問 7 個月前
Eric
已提問 2 年前
已提問 5 個月前
Donnie LI
已發佈 2 年前