このトピックでは、Application Load Balancer (ALB) がサポートする追加の HTTP ヘッダーフィールドと、それらを追加する方法について説明します。これらのヘッダーフィールドをカスタマイズして、特定の機能を実装できます。
ALB がサポートする追加 HTTP ヘッダーフィールド
HTTP ヘッダーフィールドは、ハイパーテキスト転送プロトコル (HTTP) のリクエストおよび応答メッセージのヘッダー部分です。必要に応じて HTTP ヘッダーフィールドをカスタマイズできますが、これにより Web サーバーやブラウザ上で非標準の HTTP ヘッダーフィールドが使用される場合があります。次の表に、ALB がサポートする追加ヘッダーフィールドを示します。
フィールド名 | 説明 | 適用可能なリスナープロトコル |
X-Forwarded-For |
フィールドフォーマット: ALB がクライアントの送信元 IP アドレスを取得する方法の詳細については、「ALB インスタンス経由でバックエンドサーバーがクライアントの送信元 IP アドレスを取得する方法」をご参照ください。 |
|
SLB-ID |
|
|
X-Forwarded-Proto |
フィールドフォーマット: |
|
X-Forwarded-Port |
フィールドフォーマット: |
|
X-Forwarded-Host |
フィールドフォーマット: |
|
X-Forwarded-Client-srcport |
フィールドフォーマット: |
|
X-Forwarded-Clientcert-subjectdn |
このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。 | HTTPS |
X-Forwarded-Clientcert-issuerdn |
このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。 | HTTPS |
X-Forwarded-Clientcert-fingerprint |
このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。 | HTTPS |
X-Forwarded-Clientcert-clientverify |
このヘッダーフィールドを有効にした後は、カスタム HTTP ヘッダー名を入力する必要があります。 | HTTPS |
バックエンドサーバーが HTTP ヘッダーフィールドを取得する際は、大文字と小文字を区別しないように設定してください。これは HTTP 仕様に準拠しています。
ALB がバックエンドサーバーに渡す X-Forwarded-For ヘッダーフィールドの先頭文字は常に大文字です。
その他の追加 HTTP ヘッダーフィールドについては、クライアントリクエストにヘッダーフィールドが含まれている場合、ALB はそのヘッダーフィールドをクライアントリクエストと同じ形式でバックエンドサーバーに渡します。そうでない場合、ALB は上記の表の「フィールド名」列に指定された形式でヘッダーフィールドをバックエンドサーバーに渡します。
X-Forwarded-Clientcert-subjectdn、X-Forwarded-Clientcert-issuerdn、X-Forwarded-Clientcert-fingerprint、または X-Forwarded-Clientcert-clientverify を有効にする場合、カスタム HTTP ヘッダー名として以下の値を設定することはできません:
slb-id、slb-ip、x-forwarded-for、x-forwarded-proto、x-forwarded-eip、x-forwarded-port、x-forwarded-client-srcport、x-forwarded-host、connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、またはauthority。
コンソールでの HTTP ヘッダーフィールドの追加
リスナー作成時に HTTP ヘッダーフィールドを追加する
-
ALB コンソールにログインします。
上部ナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
以下のいずれかの方法で、リスナー構成ウィザードを開きます。
インスタンスページで、対象のインスタンスを見つけ、操作列のリスナーの作成をクリックします。
インスタンスページで、対象のインスタンスの ID をクリックします。リスナータブをクリックし、リスナーの作成をクリックします。
リスナーの設定ウィザードで、以下のパラメーターを指定し、次へをクリックします。
リスナー構成
説明
リスナープロトコルの選択
リスナーのプロトコルを選択します。
詳細設定
変更をクリックして、詳細構成オプションを展開します。
追加のHTTPヘッダー
有効にするカスタム HTTP ヘッダーフィールドを選択します。
説明このトピックでは、ヘッダーフィールドに関連する構成のみを説明します。その他のパラメーターの詳細については、以下のトピックをご参照ください。
画面の指示に従って、リスナーの作成を完了するための後続の手順を実行します。
既存のリスナーに HTTP ヘッダーフィールドを追加する
-
ALB コンソールにログインします。
上部ナビゲーションバーで、ALB インスタンスがデプロイされているリージョンを選択します。
インスタンスページで、対象のインスタンスの ID をクリックします。
リスナータブをクリックします。対象のリスナーの操作列で、
> リスナーの変更を選択します。リスナーの変更ダイアログボックスで、詳細設定の右側にある変更をクリックします。
追加のHTTPヘッダーセクションで、ヘッダーフィールドを追加、保持、または削除し、保存をクリックします。
API を使用した HTTP ヘッダーフィールドの追加
リスナー作成時にヘッダーフィールドを追加することも、既存のリスナーに対してヘッダーフィールドを追加、保持、または削除することもできます。
リスナーの作成: CreateListener API を呼び出し、XForwardedForConfig パラメーターを構成します。
既存のリスナーの変更: UpdateListenerAttribute API を呼び出し、XForwardedForConfig パラメーターを更新します。
参考資料
コンソール操作
ALB を使用して HTTP リクエストを転送するには、「HTTP リスナーの追加」をご参照ください。
ALB を使用して HTTPS リクエストを転送するには、「HTTPS リスナーの追加」をご参照ください。
ALB を使用して QUIC リクエストを転送するには、「QUIC リスナーの追加」をご参照ください。
API リファレンス
CreateListener: HTTP、HTTPS、または QUIC リスナーを作成する際に、XForwardedForConfig パラメーターを設定して HTTP ヘッダーフィールドを追加します。
UpdateListenerAttribute: リスナーの構成を更新する際に、XForwardedForConfig パラメーターを更新して、ヘッダーフィールドを追加、保持、または削除します。