

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# HTTP 标头和经典负载均衡器
<a name="x-forwarded-headers"></a>

HTTP 请求和 HTTP 响应使用标头字段发送有关 HTTP 消息的信息。标头字段为冒号分隔的名称值对，各个值对之间由回车符 (CR) 和换行符 (LF) 进行分隔。RFC 2616 [信息标头](https://datatracker.ietf.org/doc/html/rfc2616#section-4.2)中定义了标准 HTTP 标头字段集。此外还有应用程序广泛使用（和自动添加）的非标准 HTTP 标头。某些非标准 HTTP 标头具有 `X-Forwarded` 前缀。经典负载均衡器支持以下 `X-Forwarded` 标头。

有关 HTTP 连接的更多信息，请参阅 *Elastic Load Balancing 用户指南*中的[请求路由](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing)。

**先决条件**
+ 确认您的侦听器设置支持 X-Forwarded 标头。有关更多信息，请参阅 [经典负载均衡器的侦听器配置](using-elb-listenerconfig-quickref.md)。
+ 配置您的 Web 服务器以记录客户端 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>

在您使用 HTTP 或 HTTPS 负载均衡器时，`X-Forwarded-For` 请求标头可自动添加并帮助您识别客户端的 IP 地址。因为负载均衡器会拦截客户端和服务器之间的流量，因此您的服务器访问日志中将仅含有负载均衡器的 IP 地址。要查看客户端的 IP 地址，请使用 `X-Forwarded-For` 请求标头。Elastic Load Balancing 会在 `X-Forwarded-For` 请求标头中存储客户端的 IP 地址，并将标头传递到您的服务器。如果 `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` 请求标头可帮助您识别客户端与您的负载均衡器连接时所用的目标端口。