让apache后端显示真实客户端IP
公司是nginx做代理,后端的web服务用的是apache,然后我现在要分析日志,但是,我的apache日志上显示的是代理服务器的ip地址,不是客户的真实IP
所以这里我需要修改一下,让apache的日志显示客户的真实IP。从网上记录搜了一些文档,现在整理如下。
文章参考:
http://www.ttlsa.com/apache/apache-get-real-ip/
http://www.weixiaodeyu.com/blog/yum-apache-install-mod_rpaf.html
首先要做的就是下载需要的模块:mod_rpaf
好多都是说:
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz下载模块,但是发现这个下载不了,按照其他的一些方法下载之后,发下安装的时候报错
于是请教了一朋友,他说他那里有包。但是他也不知道是从那里下的了
下载完压缩包之后就是解压了。tar xf
cd mod_rpaf-0.6/
apxs -i -c -n mod_rpaf-2.0.slo mod_rpaf-2.0.c
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
网上还有一种说法是不同版本的apache安装这个模块的方法是不同的,我的是apache 2的
安装成功后会有如下输出
注意:apxs工具如果不存在,使用yum install httpd-devel安装。
添加apache的配置
vim httpd.conf
找到LoadModule配置项,在最后面添加
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 192.168.50.10 # 代理服务器的ip地址(记得做相应修改)
RPAFheader X-Forwarded-For
备注:RPAFproxy_ips后面添加代理服务器的ip地址,有几个填几个
然后我们可以检查一下raaf 这个模块有没有装上
apachectl -M | grep rpaf
rpaf_module (shared) 打印出这个就代表装上了。
修改完成之后,重启apache,同时再开一个窗口打印日志
会发现日志的ip发生了变化