proxy server后的apache如何获取用户真实IP
本文代码在SuSE/Ubuntu下测试通过(包括32位和64位),如果看完本文解决不了你的问题,请用google搜素关键字:AddAcceptForwarder
用lighttpd做proxy server,来对多个apache做负载均衡已经是很常见的做法了。但是默认情况下,apache日志中获不到访问者的真实IP,对于分析日志带来一定困难,最简单的方法是使用mod_extract_forwarded2。
安装编译脚本如下(apxs2需要先安装apache2-devel):
mkdir mod_extract_forwarded2 cd mod_extract_forwarded2 wget http://www.codigg.com/wp-content/uploads/2009/09/mod_extract_forwarded2.c apxs2 -cia mod_extract_forwarded2.c |
如果apache是用系统的配置工具安装的(如SuSE下用yast) ,那么上述脚本可能会在/etc/sysconfig/apache2 的 APACHE_MODULES 中自动添加 extract_forwarded_module;如果没有自动添加,则需要在apache的配置文件中手工加载:
LoadModule extract_forwarded_module modules/mod_extract_forwarded2.so
最后在apache中配置:
AddAcceptForwarder “192.168.1.10″
其中192.168.1.10为代理服务器,即lighttpd服务器所在的IP。
最后重启服务器,此时在日志中用%h就能获取到访问用户的真实IP了。
原创文章如转载,请注明:转载自CODIGG [ http://www.codigg.com/ ]
本文链接地址:http://www.codigg.com/2009/09/proxy-server-real-ip-lighttpd-apache/


踏雪留痕,你也评论一下吧