本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
如何在 AWS Global Accelerator 中保留客户端 IP 地址
AWS Global Accelerator 为 Amazon EC2 实例和应用程序负载均衡器以不同方式保留客户端的源 IP 地址:
对于 EC2 实例终端节点,将为所有流量保留客户端的 IP 地址。
对于具有客户端 IP 地址保留的 Application Load Balancer 器终端节点,全局加速器与 Application Load Balancer 器一起工作,以提供
X-Forwarded
标头,X-Forwarded-For
,其中包括原始客户端的 IP 地址,以便您的 Web 层可以访问它。
HTTP 请求和 HTTP 响应使用标头字段发送有关 HTTP 消息的信息。标头字段为冒号分隔的名称值对,各个值对之间由回车符 (CR) 和换行符 (LF) 进行分隔。RFC 2616 中定义了标准 HTTP 标头字段集,消息头X-Forwarded
prefix.
由于 Application Load Balancer 终止传入的 TCP 连接并创建到您的后端目标的新连接,因此它不会将客户端 IP 地址一直保留到您的目标代码(例如实例、容器或 Lambda 代码)。您的目标在 TCP 数据包中看到的源 IP 地址是 Application Load Balancer 的 IP 地址。但是,Application Load Balancer 通过将原始客户端 IP 地址从原始数据包的回复地址中删除并将其插入 HTTP 标头,然后再通过新的 TCP 连接将请求发送到您的后端,从而保留原始客户端 IP 地址。
这些区域有:X-Forwarded-For
请求标头的格式如下所示:
X-Forwarded-For:
client-ip-address
以下示例显示了X-Forwarded-For
IP 地址为 203.0.113.7 的客户端的请求标头。
X-Forwarded-For: 203.0.113.7