我一直都是使用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”
rpaf的最新版本在这http://stderr.net/apache/rpaf/ 大家可以自己去下载!
wget http://stderr.net/apache/rpaf/download/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
安装完毕之后会出现
注意里面的路径,千万不要弄错了!
然后就在你的apache 里面配置一下即可
LoadModule rpaf_module /usr/lib/httpd/mod_rpaf-2.0.so (注意红框里面的路径要一样) RPAFenable On RPAFsethostname On RPAFproxy_ips IP地址 (nginx前端地址) RPAFheader X-Forwarded-For
路径不要错啦,还有就是ip要和nginx的ip填写的一样,就是和proxy_pass http://IP:端口;这里的IP要一样。
剩下的就是重启一下服务了。搞定!