

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# HTTP ヘッダーと Classic Load Balancer
<a name="x-forwarded-headers"></a>

HTTP リクエストと HTTP レスポンスは、ヘッダーフィールドを使用して HTTP メッセージに関する情報を送信します。ヘッダーフィールドはコロンで区切られた名前と値のペアであり、キャリッジリターン (CR) とラインフィード (LF) で区切ります。HTTP ヘッダーフィールドの標準セットは、「[メッセージヘッダー](https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)」RFC 2616 で定義されています。アプリケーションで広く使用されている標準以外の HTTP ヘッダーもあります。標準以外の HTTP ヘッダーには、`X-Forwarded` というプレフィックスが付いている場合があります。Classic Load Balancer では、次の `X-Forwarded` ヘッダーがサポートされます。

HTTP 接続の詳細については、*Elastic Load Balancing ユーザーガイド*の [Request routing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing) を参照してください。

**前提条件**
+ リスナー設定が X-Forwarded ヘッダーをサポートしていることを確認します。詳細については、「[Classic Load Balancer のリスナー設定](using-elb-listenerconfig-quickref.md)」を参照してください。
+ クライアント IP アドレスを記録するようウェブサーバーを設定します。

**Topics**
+ [X-Forwarded-For](#x-forwarded-for)
+ [X-Forwarded-Proto](#x-forwarded-proto)
+ [X-Forwarded-Port](#x-forwarded-port)

## X-Forwarded-For
<a name="x-forwarded-for"></a>

`X-Forwarded-For` リクエストヘッダーは自動的に追加され、HTTP または HTTPS ロードバランサーを使用する場合に、クライアントの IP アドレスを識別するのに役立ちます。ロードバランサーはクライアント/サーバー間のトラフィックをインターセプトするので、サーバーアクセスログにはロードバランサーの IP アドレスのみが含まれます。クライアントの IP アドレスを確認するには、`X-Forwarded-For` リクエストヘッダーを使用します。Elastic Load Balancing は、クライアントの IP アドレスを `X-Forwarded-For` リクエストヘッダーに格納し、このヘッダーをサーバーに渡します。`X-Forwarded-For` リクエストヘッダーがリクエストに含まれていない場合、ロードバランサーはリクエスト値としてクライアント IP アドレスを持つリクエストヘッダーを作成します。それ以外の場合、ロードバランサーはクライアント IP アドレスを既存のヘッダーに追加し、ヘッダーをサーバーに渡します。`X-Forwarded-For` リクエストヘッダーには、カンマで区切られた複数の IP アドレスを含めることができます。左端のアドレスは、リクエストが最初に行われたクライアント IP です。この後に、後続のプロキシ識別子が連なって続きます。

`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 アドレスが `X-Forwarded-For` であるクライアントの `2001:DB8::21f:5bff:febf:ce22:8a2e` リクエストヘッダーの例を示します。

```
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
```

## X-Forwarded-Proto
<a name="x-forwarded-proto"></a>

`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
<a name="x-forwarded-port"></a>

`X-Forwarded-Port` リクエストヘッダーは、ロードバランサーへの接続にクライアントが使用した送信先ポートを識別するために役立ちます。