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

Server Load Balancer:HTTP ヘッダー

最終更新日:Mar 11, 2025

このトピックでは、Application Load Balancer(ALB)でサポートされている非標準 HTTP ヘッダーと、リスナーに非標準 HTTP ヘッダーを追加する方法について説明します。非標準ヘッダーをカスタマイズして機能を実装できます。

ALB でサポートされている非標準 HTTP ヘッダー

HTTP ヘッダーは、HTTP リクエストまたはレスポンスの一部であり、リクエストまたはレスポンスに関する追加情報を伝達します。ビジネス要件に基づいて、ブラウザまたは Web サーバーで非標準 HTTP ヘッダーを構成できます。次の表は、ALB でサポートされている非標準 HTTP ヘッダーについて説明しています。

ヘッダー

説明

リスナー プロトコル

X-Forwarded-For

リスナーは、X-Forwarded-For ヘッダーを使用してクライアント IP アドレスを取得できます。

  • クライアント IP アドレスを保持するために X-Forwarded-For を追加する を選択した場合、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストに X-Forwarded-For ヘッダーを追加したり、リクエストから X-Forwarded-For ヘッダーを削除したりできます。

    • [追加](デフォルト)

      [追加] を選択すると、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストの X-Forwarded-For ヘッダーに最後のホップの IP アドレスを追加します。リクエストに X-Forwarded-For ヘッダーが含まれていない場合、ALB は値が最後のホップの IP アドレスである X-Forwarded-For ヘッダーを作成し、リクエストにヘッダーを追加します。リクエストの X-Forwarded-For ヘッダーには、コンマ(,)で区切られた複数の IP アドレスが含まれている場合があります。

    • [削除]

      [削除] を選択すると、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストから X-Forwarded-For ヘッダーを削除します。

  • クライアント IP アドレスを保持するために X-Forwarded-For を追加する を選択しない場合、ALB はリクエストをバックエンドサーバーに転送する前に、リクエストの X-Forwarded-For ヘッダーについては何も行いません。

形式:

X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …

X-Forwarded-For ヘッダーの例については、クリックして、バックエンドサーバーが受信したリクエストで確認してください。

この例では、最後のホップの IP アドレスは 127.0.0.1 です。

リクエストの説明

リクエストの例

選択クライアント IP アドレスを保持するために X-Forwarded-For を追加する を選択

選択しない X-Forwarded-For を追加してクライアント IP アドレスを保持する

追加

削除

ALB が受信したリクエストには、X-Forwarded-For ヘッダーが含まれていません。

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.1

X-Forwarded-For ヘッダーは存在しません。

X-Forwarded-For ヘッダーは存在しません。

ALB が受信したリクエストには、X-Forwarded-For ヘッダーとクライアント IP アドレスが含まれています。

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.2

X-Forwarded-For: 127.0.0.2, 127.0.0.1

X-Forwarded-For ヘッダーは存在しません。

X-Forwarded-For: 127.0.0.2

ALB が受信したリクエストには、X-Forwarded-For ヘッダーと複数のクライアント IP アドレスが含まれています。

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.2, 127.0.0.3

X-Forwarded-For: 127.0.0.2, 127.0.0.3, 127.0.0.1

X-Forwarded-For ヘッダーは存在しません。

X-Forwarded-For: 127.0.0.2, 127.0.0.3

ALB でクライアント IP アドレスを保持する方法の詳細については、「ALB でクライアント IP アドレスを保持する」をご参照ください。

SLB-ID

リスナーは、SLB-ID を使用して ALB インスタンス ID を取得できます。

  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Proto

リスナーは、X-Forwarded-Proto ヘッダーを使用して、クライアントとリスナー間のプロトコルを取得できます。このようにして、アプリケーションは X-Forwarded-Proto ヘッダーのプロトコルを識別し、リダイレクトを実行できます。

形式:

X-Forwarded-Proto: <originatingProtocol>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Port

リスナーは、X-Forwarded-Port ヘッダーを使用して、クライアントとリスナーが通信するポートを取得できます。

形式:

X-Forwarded-Port: <port>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Host

リスナーは、X-Forwarded-Host ヘッダーを使用して、クライアントのドメイン名を取得できます。

形式:

X-Forwarded-Host: <host>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Client-srcport

リスナーは、X-Forwarded-Client-srcport ヘッダーを使用してクライアント ポートを取得できます。

形式:

X-Forwarded-Client-srcport: <port>

X-Forwarded-Clientcert-subjectdn

リスナーは、X-Forwarded-Clientcert-subjectdn ヘッダーを使用して、クライアント証明書の所有者に関する情報を取得できます。

このヘッダーを使用するには、カスタムヘッダーのキーを指定する必要があります。

HTTPS

X-Forwarded-Clientcert-issuerdn

リスナーは、X-Forwarded-Clientcert-issuerdn ヘッダーを使用して、クライアント証明書の認証局に関する情報を取得できます。

このヘッダーを使用するには、カスタムヘッダーのキーを指定する必要があります。

HTTPS

X-Forwarded-Clientcert-fingerprint

リスナーは、X-Forwarded-Clientcert-fingerprint ヘッダーを使用して、クライアント証明書のフィンガープリント値を取得できます。

このヘッダーを使用するには、カスタムヘッダーのキーを指定する必要があります。

HTTPS

X-Forwarded-Clientcert-clientverify

リスナーは、X-Forwarded-Clientcert-clientverify ヘッダーを使用して、クライアント証明書の認証結果を取得できます。

このヘッダーを使用するには、カスタムヘッダーのキーを指定する必要があります。

HTTPS

説明
  • リクエストヘッダーの処理時に大文字と小文字を区別しない HTTP 標準に従ってバックエンドサーバーを構成することをお勧めします。

    • ALB によって作成され、リクエストに追加される X-Forwarded-For ヘッダーは、常に大文字の「X」で始まります。

    • X-Forwarded-For を除いて、上記のヘッダーについては、ALB は上記で説明したルールに従って処理します。その他のヘッダーについては、ALB はリクエストで元の形式を保持します。

  • X-Forwarded-Clientcert-subjectdnX-Forwarded-Clientcert-issuerdnX-Forwarded-Clientcert-fingerprint、および X-Forwarded-Clientcert-clientverify のカスタムヘッダーキーを以下のように指定することはできません。

    slb-idslb-ipx-forwarded-forx-forwarded-protox-forwarded-eipx-forwarded-portx-forwarded-client-srcportx-forwarded-hostconnectionupgradecontent-lengthtransfer-encodingkeep-alivetehostcookieremoteipauthority

コンソールで HTTP ヘッダーを追加する

リスナーの作成時に HTTP ヘッダーを追加する

  1. ALB コンソール にログインします。

  2. 上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。

  3. 次のいずれかの方法を使用して、リスナー構成ウィザードを開きます。

    • インスタンス ページで、管理する ALB インスタンスを見つけ、[アクション] 列の リスナーの作成 をクリックします。

    • インスタンス ページで、管理する ALB インスタンスの ID をクリックします。リスナー タブで、リスナーの作成 をクリックします。

  4. リスナーの設定 ステップで、次のパラメーターを構成し、[次へ] をクリックします。

    パラメーター

    説明

    [リスナー プロトコル]

    リスナー プロトコルを選択します。

    詳細設定

    [変更] をクリックして詳細設定を構成できます。

    追加のHTTPヘッダー

    追加する HTTP ヘッダーを選択します。

    説明

    その他のパラメーターの詳細については、以下のトピックをご参照ください。

  5. プロンプトに従って構成を完了します。

既存のリスナーに HTTP ヘッダーを追加する

  1. ALB コンソール にログインします。

  2. 上部のナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。

  3. インスタンス ページで、管理する ALB インスタンスの ID をクリックします。

  4. [リスナー] タブをクリックし、管理するリスナーを見つけて、更多リスナーの変更[アクション] 列の を選択します。

  5. リスナーの変更 ダイアログボックスで、変更詳細設定 の右側にある をクリックします。

  6. 追加のHTTPヘッダー セクションで、HTTP ヘッダーを追加または削除し、[保存] をクリックします。

API 呼び出しによって HTTP ヘッダーを追加する

リスナーを作成するために API を呼び出すときに、追加するヘッダーを指定できます。既存のリスナーのヘッダーを追加、保持、または削除するために API を呼び出す場合。

  • リスナーの作成時に HTTP ヘッダーを追加するには、CreateListener 操作を呼び出すときに、[xforwardedforconfig] パラメーターを設定します。

  • 既存のリスナーの HTTP ヘッダーを管理するには、UpdateListenerAttribute 操作を呼び出すときに、[xforwardedforconfig] パラメーターを変更します。

関連情報

[コンソール操作]

[API リファレンス]

  • CreateListener: HTTP、HTTPS、または QUIC リスナーを作成します。リクエストで [xforwardedforconfig] パラメーターを設定して、HTTP ヘッダーを追加できます。

  • UpdateListenerAttribute: リスナーの構成を変更します。リクエストで [xforwardedforconfig] パラメーターを変更して、HTTP ヘッダーを追加、保持、または削除できます。