日志标签:nginx反向代理

nginx前端反代,后端apache记录正确访问者ip

分类:运维技术日期:2012-02-14 - 12:51:55评论:2条作者:老谢

故事背景:

由于老谢博客目前使用nginx做前端反代,后端的apache日志记录的全部都是反代服务器的ip,
无法记录到真是访问者的ip,本文就是介绍如何配置,让apache记录真实访问者的ip地址。

nginx反代规则

server
	{
    	listen          80;
    	server_name     demo.com www.demo.com;
 
    	location / {
        	proxy_pass              http://apache.demo.com/;
        	proxy_redirect          off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        	}
	}

apache端配置

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xvfz mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

编辑httpd.cong,添加以下代码

<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 #反代服务器ip
RPAFheader X-Forwarded-For
</IfModule>

加载模块

LoadModule rpaf_module   modules/mod_rpaf-2.0.so

定义日志格式

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

调用样例

CustomLog "/home/wwwlogs/$domain.log" varnishcombined