前一段
在公司idc机房跑apache的web server上
为某个域名(www.abc.com)用mod_proxy打了个洞到公司内网的某台机器上
这样做以后
公司内网的那台真正的服务于域名http://www.abc.com的web server的access_log里全是内网ip
而且是idc机房用来给www.abc.com打洞的前端服务器的内网ip
鉴于公司内网的real server上要做日志分析
log日志上全是公司内网的某几个ip显然是没法做的
于是产品那边提出需求:要在log里记录访问者真实的ip
找了个第三方的apache模块儿:mod_extract_forwarded
他有两个版本
for apache1.x的1.x,主页在这里、for apache2.x的2.x,主页在这里
这里因为我们的apache是httpd2.0.x,所以我们要用2.x版本的mod_extract_forwarded
但是这里的2.x的官网http://www.openinfo.co.uk连不上去
所以我们在rpmfind.net找了个SRPM
重新build了一下
得到RPM
再安装
于是会生成文件:
/etc/httpd/conf.d/mod_extract_forwarded.conf
/usr/lib/httpd/modules/mod_extract_forwarded.so
/usr/share/doc/mod_extract_forwarded-2.0.2
/usr/share/doc/mod_extract_forwarded-2.0.2/INSTALL
/usr/share/doc/mod_extract_forwarded-2.0.2/README
而且在配置文件/etc/httpd/conf.d/mod_extract_forwarded.conf已经做了最基本的配置
如下(注释已经全部去掉):
LoadModule extract_forwarded_module modules/mod_extract_forwarded.so
MEForder refuse,accept
MEFrefuse all
MEFaddenv on
MEFdebug off
我们所需要做的仅仅是在”MEFrefuse all“后面添加一句“MEFaccept x.x.x.x”即可
这里的”x.x.x.x“是打洞过来的http://www.abc.com的前端,也就是跑mod_proxy的机器的内网ip地址
如果有多台前端
这里改成”MEFaccept x.x.x.x y.y.y.y”
然后再重启httpd
再看access_log
基本上记录的都是合法的公网ip了
Tags: Tags: apache, Fedora 作者 哈哈
1 Comment »