ロード・バランサ・ヘッダー

ロード・バランサでのHTTP "X"およびホスト・ヘッダーの使用について説明します。

HTTPリクエストおよびレスポンスには、通常、メッセージに関するコンテキスト情報を提供するヘッダー・フィールドが含まれます。RFC 2616では、HTTPヘッダー・フィールドの標準セットが定義されています。X-で始まるいくつかの非標準のヘッダー・フィールドもよく使用されます。ロード・バランサ・サービスは、リクエストをサーバーに渡すときにホスト・ヘッダーと次のX-ヘッダーを追加または変更します。これらのヘッダーは常に追加され、無効にできないため、ルール・セットを使用してヘッダーを削除または変更することはできません。

X-Forwarded-For

接続IPアドレスのリストを提供します。

ロード・バランサは、受信リクエストのX-Forwarded-Forフィールドに最後のリモート・ピア・アドレスを追加します。カンマとスペースが、追加されるアドレスに先行します。クライアント・リクエスト・ヘッダーにX-Forwarded-Forフィールドが含まれない場合、この値はX-Real-IP値と同じです。リクエスト元のクライアントは、受信フィールドの内容が信頼できると仮定すると、リスト内の最初(左端)のIPアドレスです。最後のアドレスは最後(最新)のピア、つまり、ロード・バランサがリクエストを受信したマシンです。書式は次のとおりです:

X-Forwarded-For: original_client, proxy1, proxy2

受信フィールドの例:

X-Forwarded-For: 202.1.112.187

プロキシIPアドレスが追加されたフィールドの例:

X-Forwarded-For: 202.1.112.187, 192.168.0.10

X-Forwarded-Host

クライアントによってリクエストされた元のホストとポートは、Host HTTPリクエスト・ヘッダーで識別します。このヘッダーは、リバース・プロキシ(ロード・バランサ)のホスト名またはポートが、リクエストを処理する元のサーバーと異なる場合があるため、元のホストを判別する際に役立ちます。

X-Forwarded-Host: www.oracle.com:8080

X-Forwarded-Port

クライアントがロード・バランサへの接続に使用したリスナー・ポート番号を識別します。例:

X-Forwarded-Port: 443

X-Forwarded-Proto

クライアントがロード・バランサへの接続に使用したプロトコル(httpまたはhttps)を識別します。例:

X-Forwarded-Proto: https

X-Real-IP

クライアントのIPアドレスを識別します。ロード・バランサ・サービスの場合、クライアントとは最後のリモート・ピアです。

ロード・バランサは、クライアントとサーバー間のトラフィックをインターセプトします。そのため、サーバーのアクセス・ログには、ロード・バランサのIPアドレスのみが含まれます。X-Real-IPヘッダーは、クライアントのIPアドレスを提供します。例:

X-Real-IP: 192.168.0.10

Host

クライアントによってリクエストされた元のホストと(オプションの)ポートは、Host HTTPリクエスト・ヘッダーで識別します。例:

Host: www.oracle.com