使用 Application Load Balancer (ALB) 時,出現 HTTP 503 (服務無法使用) 錯誤。如何解決此錯誤?
簡短描述
若要判斷 Application Load Balancer 是否產生 503 錯誤,請執行下列其中一個動作:
- 存取您的 CloudWatch 指標並找出標示 HTTPCode_ELB_503_Count 的指標。
- 執行此 CURL 命令。如果回應包含「503 服務暫時不可用」,則錯誤來自 Application Load Balancer。
請務必將 MY_URL 取代為用於存取 Application Load Balancer 的 URL:
$ curl -IkL MY_URL
解決方案
確認目標群組已註冊目標
使用 EC2 主控台進行驗證
- 存取 Amazon EC2 主控台。
- 在導覽窗格的負載平衡下,選擇目標群組。
- 選擇目標群組的名稱,以開啟其詳細資訊頁面。
- 選擇目標索引標籤。
- 檢查是否有列出的目標。如果目標已列出,則會註冊它們。
使用 AWS CLI 進行驗證
注意:如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版 AWS CLI。
若要使用 AWS CLI 驗證目標,請使用 describe-target-health 命令。
註冊目標
如果看不到任何已註冊的目標,請透過主控台或透過 AWS CLI 註冊它們。
確認目標群組與 Auto Scaling 群組相關聯 (如果您正在使用 Auto Scaling)
如果您的目標群組是 Auto Scaling 群組的一部分,請確認這兩個群組正確關聯。如果不是,請連接這兩個群組。
使用 EC2 主控台進行驗證:
- 開啟 Amazon EC2 主控台。
- 在導覽窗格的 Auto Scaling 下,選擇 Auto Scaling 群組。
- 選擇您要驗證的 Auto Scaling 群組。
- 在負載平衡下,確認 Application Load Balancer 的目標群組與 Auto Scaling 群組相關聯。
使用 AWS CLI 進行驗證
執行 describe-auto-scaling 命令。請務必將 MY-ASG 取代為 Auto Scaling 群組的名稱。將 AWS-REGION 取代為您的特定 AWS 區域。
$ aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name MY-ASG --region AWS-REGION
在命令輸出中,確認目標群組列在 TargetGroupARNs 之下。
連接目標群組
如果目標群組未連接至 Auto Scaling 群組,請透過主控台或透過 CLI 建立群組關聯。
檢查目標運作狀態
確認目標已註冊後,請確認它們處於健康狀態。有關更多資訊,請參閱
如何對 Application Load Balancer 的運作狀態檢查失敗進行疑難排解和修復?
相關資訊
DeregisterTargets
AttachLoadBalancerTargetGroups