HTTP标题和经典负载均衡器 - Elastic Load Balancing

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

HTTP标题和经典负载均衡器

HTTP请求和HTTP响应使用标头字段来发送有关HTTP消息的信息。标头字段为冒号分隔的名称值对,各个值对之间由回车符 (CR) 和换行符 (LF) 进行分隔。RFC2616 “邮件HTTP标题” 中定义了一组标准的标头字段。还有一些非标准标HTTP头可用(并自动添加),这些标头已被应用程序广泛使用。一些非标准标HTTP头带有X-Forwarded前缀。经典负载均衡器支持以下 X-Forwarded 标头。

有关HTTP连接的更多信息,请参阅 Elastic Load Balancing 用户指南中的请求路由

先决条件

X-Forwarded-For

X-Forwarded-For请求标头会自动添加,可帮助您在使用HTTP或HTTPS负载均衡器时识别客户端的 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

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

以下示例包含来自客户端的X-Forwarded-Proto请求的请求标头,该请求是作为HTTPS请求发出的:

X-Forwarded-Proto: https

X-Forwarded-Port

X-Forwarded-Port 请求标头可帮助您识别客户端与您的负载均衡器连接时所用的目标端口。