すべてのプロダクト
Search
ドキュメントセンター

Server Load Balancer:レイヤー7リスナーに関するFAQ

最終更新日:Oct 17, 2024

このトピックでは、Classic Load Balancer (CLB) のレイヤー7リスナーに関するよくある質問に対する回答を提供します。

リクエストがレイヤー7リスナーによって転送された後、バックエンドサーバーから返されたレスポンスヘッダーから一部のパラメーターが削除されるのはなぜですか?

課題: CLBは、レスポンスヘッダーのDate、Server、X-Pad、およびX-Accel-Redirectパラメーターの値を変更して、セッションの永続性を実装します。

解決策:

  • xl-server や xl-date などのカスタムヘッダーにプレフィックスを追加します。

  • レイヤー7 HTTPリスナーをレイヤー4 TCPリスナーに変更します。

追加のヘッダーTransfer-Encoding: chunkedがHTTPリクエストに追加されるのはなぜですか?

問題:

ドメイン名がレイヤー7 CLBインスタンスのサービスアドレスに解決された後、オンプレミスホストからドメイン名にアクセスすると、Transfer-Encoding: chunkedフィールドがHTTPリクエストヘッダーに追加されます。 ただし、このフィールドは、オンプレミスホストから直接バックエンドサーバーにアクセスする場合、リクエストには表示されません。

原因:

レイヤー7 CLBインスタンスは、Tengineリバースプロキシに基づいて負荷分散を実装します。 Transfer-Encodingフィールドは、webサーバーが応答メッセージ本文をどのようにエンコードするかを示します。 たとえば、Transfer-Encoding: chunkedは、chunked transfer encodingが使用されることを示します。

説明

レイヤー4リスナーはトラフィックのみを配信するため、このヘッダーはレイヤー4リスナーによって転送されたリクエストには追加されません。

HTTPSリスナーでWebサイトを開くと、スタイルシートが読み込まれないのはなぜですか。

問題:

HTTPリスナーとHTTPSリスナーが作成され、同じバックエンドサーバーを使用します。 指定されたポート番号のHTTPリスナーを介してWebサイトにアクセスすると、Webサイトが表示されます。 ただし、HTTPSリスナーを介してWebサイトにアクセスすると、Webサイトのレイアウトが歪んでしまいます。

原因:

デフォルトでは、CLBはJavaScriptファイルの読み込みと転送をブロックしません。 この問題は、次の理由によって引き起こされる可能性があります。

  • 証明書は Web ブラウザのセキュリティレベルと互換性がありません。

  • 証明書は無資格のサードパーティ証明書です。 この場合、証明書発行者に連絡して、証明書の資格を確認してください。

解決策:

  1. Webサイトを開いたら、ブラウザの指示に従ってスクリプトを読み込みます。

  2. 必要な証明書をブラウザに追加してください。

HTTPSリスナーはどのポートを使用しますか。

HTTPSリスナーには、ポートに対する特別な要件はありません。 ただし、HTTPSリスナーのポート443を指定することを推奨します。

CLBはどのような種類の証明書をサポートしますか?

CLBは、PEM形式のサーバー証明書とCA証明書をサポートします。

サーバー証明書の場合は、証明書の内容と秘密鍵の両方をアップロードする必要があります。 CA証明書の場合は、証明書のコンテンツのみをアップロードする必要があります。

CLBはkeytoolが作成した証明書をサポートしていますか?

はい、CLBはkeytoolで作成された証明書をサポートします。

証明書をCLBにアップロードする前に、証明書形式をPEMに変換する必要があります。 詳細については、「証明書形式の変換」をご参照ください。

PKCS#12 (PFX) 形式の証明書を使用できますか?

はい。PKCS#12 (PFX) 形式の証明書を使用できます。

証明書をCLBにアップロードする前に、証明書形式をPEMに変換する必要があります。 詳細については、「証明書形式の変換」をご参照ください。

証明書をアップロードするときにKeyEncryptionエラーが発生するのはなぜですか。

秘密鍵に誤った内容が含まれているため、エラーが発生します。 詳細については、「証明書の要件」をご参照ください。

HTTPSリスナーでサポートされているSSLプロトコルバージョン

HTTPSリスナーは、TLSv1.0、TLSv1.1、TLSv1.2、およびTLSv1.3のSSLプロトコルバージョンをサポートしています。

HTTPSセッションチケットのTTLとは何ですか?

HTTPSセッションチケットのTTLは300秒です。

DH PARAMETERSフィールドを含む証明書をアップロードできますか。

HTTPSリスナーで使用されるECDHE暗号スイートは、前方秘密をサポートしますが、DHE暗号スイートで必要なセキュリティ強化パラメーターはサポートしていません。 その結果、PEM証明書ファイルのBEGIN DH PARAMETERSフィールドを含む文字列はアップロードできません。

HTTPS リスナーは SNI をサポートしていますか。

Server Name Indication (SNI) は、SSLとTLSの拡張機能であり、サーバーが同じIPアドレスに複数のSSL証明書をインストールできるようにします。 詳細については、「追加ドメイン名の追加と管理」をご参照ください。

HTTPおよびHTTPSリスナーがバックエンドサーバーにアクセスするときに使用するHTTPのバージョン

  • リクエストがHTTP/1.1またはHTTP/2を使用する場合、レイヤー7リスナーはHTTP/1.1を使用してリクエストをバックエンドサーバーに配信します。

  • リクエストがHTTP/1.1およびHTTP/2以外のプロトコルを使用する場合、レイヤー7リスナーはHTTP/1.0を使用してリクエストをバックエンドサーバーに配信します。

バックエンドサーバーは、クライアントがHTTPまたはHTTPSリスナーにアクセスするために使用するプロトコルバージョンを取得できますか?

はい。バックエンドサーバーは、クライアントがHTTPまたはHTTPSリスナーにアクセスするために使用するプロトコルバージョンを取得できます。

HTTP/HTTPS リスナーに指定されているタイムアウト時間の値は何ですか。

  • HTTP永続接続では、最大100のリクエストを連続して送信できます。 制限に達すると、接続は閉じられます。

  • HTTP永続接続を介した2つのHTTPまたはHTTPSリクエスト間のタイムアウト期間は、1〜60秒の値に設定できます。 実際のタイムアウト期間には、1秒または2秒の時間誤差がある場合があります。 TCP接続は、タイムアウト期間が指定された値に達すると閉じられます。 顧客がHTTP永続接続を使用する場合は、13秒以内にハートビートリクエストを送信するようにクライアントを設定します。

  • CLBとバックエンドのElastic Compute Service (ECS) インスタンス間のTCPスリーウェイハンドシェイクのタイムアウト時間は5秒です。 ハンドシェイクがタイムアウトすると、CLBは次のECSインスタンスを選択します。 アクセスログでアップストリームの応答時間を確認することで、タイムアウトレコードを見つけることができます。

  • CLBがECSインスタンスからの応答を待機する時間は、1〜180秒の範囲の値に設定できます。 待機時間が指定されたタイムアウト期間に達すると、HTTP 504または408ステータスコードがクライアントに送信されます。 アクセスログでアップストリームの応答時間を確認することで、タイムアウトレコードを見つけることができます。

  • 300秒後、HTTPSセッションの再利用がタイムアウトします。 その後、クライアントは完全なSSLハンドシェークプロセスを再度実行する必要があります。

WebSocketをサポートするようにCLBインスタンスのリスナーを設定するにはどうすればよいですか。

デフォルトでは、CLBインスタンスのHTTPリスナーはWebSocketをサポートしています。 詳細については、「WebSocketおよびWebSocket Secureのサポートに関するFAQ」をご参照ください。