ロード・バランサHTTPの問題のトラブルシューティング

ロード・バランサに関連するHTTPの問題について学習します。

HTTP 400不正なリクエスト・ヘッダーまたはCookie

考えられる解決策の1つは、ロード・バランサのHTTPリクエスト・ヘッダー・サイズを増やすことです。デフォルトでは、サイズ制限は8KBですが、64KBに増やすと問題が解決されます。この解決策はHTTPでのみサポートされています。対処するためにHTTPヘッダー・サイズを増やすルールを作成できます。同様の障害が発生する可能性のあるヘッダー名の特殊文字を処理するルールもあります。

詳細は、HTTPヘッダー・ルールを参照してください。

HTTP 502不正なゲートウェイ・エラー

ロード・バランシング・ロギングは、モニタリングおよび管理に加えて、ロード・バランサ・インフラストラクチャの問題を識別、分離およびトラブルシューティングするのに役立ちます。次の手順は、新しいWebアプリケーションexample.comのデプロイ時に発生した502 Bad Gatewayエラーのトラブルシューティング方法を示しています。この例では、開発環境のフロント・エンドとしてOracle Cloud Infrastructureパブリック・ロード・バランサを使用します。タスクはブラウザで502 Bad Gatewayエラーで失敗します。次のように、ロード・バランサのアクセスおよびエラー・ログを使用して問題をトラブルシューティングします:

  1. 次のように、curlユーティリティを使用してエラーを確認します:

    curl -v http://example.com
    > GET / HTTP/1.1
    > Host: 192.0.2.99
    > User-Agent: curl/7.54.0
    > Accept: */*
    >
    < HTTP/1.1 502 Bad Gateway
    < Content-Type: text/html
    < Content-Length: 161
    < Connection: keep-alive
  2. ロード・バランサのアクセスおよびエラー・ログで"lbStatusCode"および"backendStatusCode"を検索します。

    • 結果にbackendStatusCode: 502が含まれる場合:

      考えられる原因:

      • 問題は正しく構成されていないバックエンドです。

      • バックエンドが別のリバース・プロキシまたはLBの可能性があります。

      考えられる解決策:

      • アップストリーム・プロキシ・ログを調査して、502エラーが返される理由を特定します。

      • アップストリーム・プロキシが502エラーを返す原因となっている最終バックエンドの問題を解決します。

    • 結果にbackendStatusCode: 504が含まれる場合:

      考えられる原因:

      • バックエンドから504エラーが発生した場合、通常、バックエンドが別のプロキシまたはロード・バランサ・サービス・インスタンスであることを示します。通常、このエラーは、プロキシが指定した時間内にアップストリーム・サーバーに接続できない場合に発生します。

      • アップストリーム・システムのログを調査して、アップストリーム・プロキシがバックエンドに接続できない原因を特定します。

      考えられる解決策:

      • 接続タイムアウトの時間を増やします。

      • tcpdumpなどのユーティリティや組込みのアプリケーション・ツールを使用して、通常よりもバックエンドのレスポンスに時間がかかっている理由を特定します。

    • 結果にbackendStatusCode: 500が含まれる場合:

      考えられる原因:
      • バックエンドから500エラーが発生した場合、通常、「内部サーバー・エラー」と一般に呼ばれるサーバー側のエラーを示します。通常、バックエンド・アプリケーションがこのエラーの原因です。

      • データベース、API、サービスなどのアップストリーム・リソースに接続できません。

      考えられる解決策:

      エラーの原因となっているアプリケーションレベルの問題を解決します。

    • 結果にエラー・コードのないbackendStatusCode:が含まれる場合:

      • 通常、lbStatusCode: 502にバックエンド・ステータス・コードが伴わない場合、接続を送信するバックエンドはありません。

      • ロード・バランサ・エラー・ログにNo healthy backends available in associated backendSetメッセージが表示されることもあります。

      • バックエンドが正常であることを確認します。バックエンドが正常な場合は、ヘルス・チェックが正しく構成されていることを確認します。

HTTP 504

504 HTTPエラーは、通常、バックエンド・サーバーが別のプロキシまたはロード・バランサ・サービス・インスタンスとして使用されていることを示します。通常、このエラーは、プロキシが指定した時間内にアップストリーム・サーバーに接続できない場合に発生します。アップストリーム・システムのログを調査して、アップストリーム・プロキシがバックエンド・サーバーに接続できない原因を特定します。

考えられる解決策には次が含まれます:

  • 接続タイムアウトの時間を増やします。

  • tcpdumpなどのユーティリティや組込みのアプリケーション・ツールを使用して、通常よりもバックエンド・サーバーのレスポンスに時間がかかっている理由を特定します。

詳細は、HTTP 502不正なゲートウェイ・エラーを参照してください。