クライアントが Classic Load Balancer (CLB) 経由でウェブサイトにリクエストを送信すると、HTTP 502 エラーが表示されます。どうすれば解決できますか。
HTTP 502 (不正なゲートウェイ) エラーは、次のいずれかの理由で発生する可能性があります。
これらの 502 エラーの原因を調べるには、次の手順を実行します。
バックエンドレスポンスが ELB 502 エラーの原因である場合、問題の原因は次のとおりです。
バックエンドサーバーによって 502 エラーが生成された場合は、アプリケーションの所有者に問い合わせてください。Classic Load Balancer によって 502 エラーが生成された場合、バックエンドからの HTTP レスポンスの形式が正しくありません。ELB が生成する 502 エラーのトラブルシューティングを行うには、次の手順に従います。
1. バックエンドアプリケーションから返されたレスポンス本文が、HTTP 仕様に準拠しているかどうかを確認します。RFC Editor の次のドキュメントを参照してください。 RFC 7230 - HTTP/1.1: メッセージ構文とルーティング RFC 7231 - HTTP/1.1: セマンティクスとコンテンツ RFC 7232 - HTTP/1.1: 条件付きリクエスト RFC 7233 - HTTP/1.1: 範囲リクエスト RFC 7234 - HTTP/1.1: キャッシュ RFC 7235 - HTTP/1.1: 認証
2. レスポンスヘッダーの構文が正しいことを確認します。Content-Type:text などのキーと値です。HTTP レスポンスヘッダーで Content-Length または転送エンコーディングが欠落していないことを確認します。ウェブサーバーの HTTP ヘッダーフィールドの詳細については、HTTP ヘッダーフィールドのリストで Internet Assigned Numbers Authority のドキュメントを参照してください。次のようなコマンドを実行して、返された HTTP レスポンスを調べます。
curl -vko /dev/null server_instance_IP
3. ELB アクセスログで HTTP 502 の重複エラーがないか確認します。elb_status_code と backend_status_code の両方での 502 エラーは、1 つ以上のウェブサーバーインスタンスに問題があることを示しています。問題が発生しているウェブサーバーインスタンスを特定し、バックエンドウェブサーバーインスタンスのウェブサーバーログを確認します。一般的なウェブサーバーとオペレーティングシステムについては、次のログの場所を参照してください。
Apache ログ
NGINX ログ
IIS ログ
Windows IIS 7、IIS 7.5、および IIS 8.0 のウェブサーバーログは、inetpub\logs\Logfiles ディレクトリに保存されます。インターネットインフォメーションサーバー (IIS) のログの詳細については、マイクロソフトのドキュメント「IIS 7.0 以降のバージョンの HTTP 状態コード」を参照してください。502 エラーが ELB で生成されたものであり、バックエンドのレスポンスが RFC 規約に適合していることを確認した場合は、AWS サポートにお問い合わせください。
Classic Load Balancer のトラブルシューティング: レスポンスコードメトリクス
Tutorial: Create a Classic Load Balancer (チュートリアル: Classic Load Balancer の作成)
Elastic Load Balancing の ID およびアクセス管理
Configure health checks for your Classic Load Balancer (Classic Load Balancer のヘルスチェックを設定する)
Elastic Load Balancing 接続のタイムアウト管理