全部博文(2065)
分类: 系统运维
2010-02-01 22:56:45
当APACHE和NGINX等WEB服务器前端有负载均衡设备或者CACHE SERVER等情况下,APACHE日志中无法正确获取CLIENT的源IP,无法统计访问量,这个时候就要做一些设置上的更改。以下是两个例子:
1 APACHE 与 HAProxy 组合
APACHE前端有HAProxy,HAProxy配置成透明的反向代理,它会把CLIENT的IP地址用X-Forwarded-For 变量传递给后面的WEB SERVER。我们想要记录的是CLIENT的IP而不是HAProxy的IP,更改配置如下:
修改httpd.conf,将LogFormat中的%h修改为 %{X-Forwarded-For}i
#LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\ ” ” combined
LogFormat ”%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
2 APACHE 与F5 BIGIP LTM
APACHE的前端是F5 BIGIP LTM 1600,APACHE的日志中记录的CLIENT IP是经过LTM NAT转换后的IP,需修改LTM的配置如下:
找到http profile,里面有一项设置是Insert XForwarded-For,将这个功能启用即可。
另外,NGINX上也有类似的配置,不过我未在生产环境中使用过NGINX,此处不做讨论。