Nginx前端apache后端获取真实IP

我一直都是使用Nginx做前端,Tomcat做后端,这样的话我在程序里面从请求头里面可以提取出来真实的IP地址,但是PHP这东西毕竟咱不会,只是按照网上人家说的跟着瞎配,人家说Nginx做前端好,咱们就跟着弄呗,但是这样一来WP这个货只能获取Nginx的代理过来的IP地址,真郁闷,放眼望去全部是都是清一色:(
这里咱也找了一些教程,但是毕竟人家都是手工编译的环境,咱们小白只会用yum来安装,所以折腾了一下,也弄出来了,嘿嘿,分享一下
首先Nginx里面需要配置一下

proxy_pass http://IP:端口;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

这里的IP是你的Nginx反带后端的地址,根据自己的需要填写IP和端口吧!
下面就是把真实的IP地址封装到请求头里面带过去,然后Apache这家伙居然傻不拉几的自己不会辨别-。-
这就需要安装一个模块”rpaf”

wget http://xsdou.googlecode.com/files/mod_rpaf-0.6.tar.gz
tar zxf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

需要使用apxs命令(这个命令在httpd-devel,可以使用yum install httpd-devel)
安装完毕之后会出现

注意里面的路径,千万不要弄错了!

然后就在你的apache 里面配置一下即可

LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 192.168.1.187#nginx服务器IP,有几个填几个
RPAFheader X-Forwarded-For

添加ip.php,测试一下模块是否生效。


点赞