ロード・バランサ・ヘッダー
ロード・バランサでの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
X- 要求-ID
リクエストIDは、HTTPリクエストおよびレスポンス・ヘッダーで公開されている一意のリクエスト識別子を指定することで、リクエストの追跡および管理に役立ちます。
リクエストIDが有効な場合、デフォルトのヘッダー名X-Request-IDが、ロード・バランサからバックエンドおよびHTTPヘッダー・レスポンスへのHTTPリクエスト・ヘッダーに含まれます。有効になっていない場合、ロード・バランサは、ロード・バランサ・バックエンドまたは返されたレスポンスに渡されたリクエストに、この一意のリクエストIDヘッダーを追加しません。
デフォルトを使用するかわりに、異なるヘッダー名を入力できます。カスタム・ヘッダー名は「X- 」で始まる必要があります。
Host
クライアントによってリクエストされた元のホストと(オプションの)ポートは、Host HTTPリクエスト・ヘッダーで識別します。例:
Host: www.oracle.com