HTTP ヘッダーおよび クラシックロードバランサー
HTTP リクエストと HTTP レスポンスは、ヘッダーフィールドを使用して HTTP メッセージに関する情報を送信します。ヘッダーフィールドはコロンで区切られた名前と値のペアであり、キャリッジリターン
(CR) とラインフィード (LF) で区切ります。HTTP ヘッダーフィールドの標準セットが RFC 2616 の「Message HeadersX-Forwarded
というプレフィックスが付いている場合があります。クラシックロードバランサー は、次の X-Forwarded
ヘッダーをサポートしています。
HTTP 接続の詳細については、Elastic Load Balancing ユーザーガイドの「リクエストルーティング」を参照してください。
前提条件
-
リスナー設定が X-Forwarded ヘッダーをサポートしていることを確認します。詳細については、「クラシックロードバランサー のリスナー設定」を参照してください。
-
クライアント IP アドレスを記録するようウェブサーバーを設定します。
X-Forwarded ヘッダー
X-Forwarded-For
X-Forwarded-For
リクエストヘッダーは自動的に追加され、HTTP または HTTPS ロードバランサーを使用する場合に、クライアントの IP アドレスを識別するのに役立ちます。ロードバランサーはクライアント/サーバー間のトラフィックをインターセプトするので、サーバーアクセスログにはロードバランサーの
IP アドレスのみが含まれます。クライアントの IP アドレスを確認するには、X-Forwarded-For
リクエストヘッダーを使用します。Elastic Load Balancing は、クライアントの IP アドレスを X-Forwarded-For
リクエストヘッダーに格納し、このヘッダーをサーバーに渡します。
X-Forwarded-For
リクエストヘッダーは以下のような形式です。
X-Forwarded-For: client-ip-address
以下に、IP アドレスが 203.0.113.7
であるクライアントの X-Forwarded-For
リクエストヘッダーの例を示します。
X-Forwarded-For: 203.0.113.7
以下に、IPv6 アドレスが 2001:DB8::21f:5bff:febf:ce22:8a2e
であるクライアントの X-Forwarded-For
リクエストヘッダーの例を示します。
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
X-Forwarded-Proto
X-Forwarded-Proto
リクエストヘッダーを使用すると、クライアントがロードバランサーへの接続に使用したプロトコル (HTTP または HTTPS) を識別することができます。サーバーアクセスログには、サーバーとロードバランサーの間で使用されたプロトコルのみが含まれ、クライアントとロードバランサーの間で使用されたプロトコルに関する情報は含まれません。クライアントとロードバランサーの間で使用されたプロトコルを判別するには、X-Forwarded-Proto
リクエストヘッダーを使用します。Elastic Load Balancing は、クライアントとロードバランサーの間で使用されたプロトコルを X-Forwarded-Proto
リクエストヘッダーに格納し、このヘッダーをサーバーに渡します。
アプリケーションやウェブサイトは X-Forwarded-Proto
リクエストヘッダーに格納されているプロトコルを使用して、適切な URL にリダイレクトする応答を生成できます。
X-Forwarded-Proto
リクエストヘッダーは以下のような形式です。
X-Forwarded-Proto: originatingProtocol
次の例には、HTTPS リクエストとしてクライアントから発信されたリクエストの X-Forwarded-Proto
リクエストヘッダーが含まれています。
X-Forwarded-Proto: https
X-Forwarded-Port
X-Forwarded-Port
リクエストヘッダーは、ロードバランサーへの接続にクライアントが使用した送信先ポートを識別するために役立ちます。