Amazon ELB 将 IP 地址伪装到 EC2 盒吗?

Amazon ELB 将 IP 地址伪装到 EC2 盒吗?

看来我的 Amazon Elastic Load Balancer 正在将流量分配给 EC2,但没有它们的 IP 地址?

这是正常现象吗?这非常烦人。例如,ELB CName 位于我的域名 DNS 上,我访问了该域,访问日志中有 ELB 的 IP 地址,而不是访问者的 IP 地址。

答案1

如果你在 HTTP 模式下运行 ELB,它添加一些 HTTP 标头发送到 EC2 实例的请求,其中包括X-Forwarded-For包含客户端 IP 地址的标头。

X-Forwarded-For: 203.0.113.7

请注意,如果其他负载均衡器或代理处理了该请求,此标头可能包含多个 IP。在这种情况下,您需要提取列出的第一个 IP。

X-Forwarded-For: 203.0.113.7, 10.12.33.44, 10.73.23.88

答案2

由于您评论中的链接已损坏,因此请按照以下方法记录访问者的 IP 地址:

在httpd.conf中,创建新的日志格式:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined-elb

然后使用它:

CustomLog logs/access_log combined-elb

就这么简单。

相关内容