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”
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要一样。

剩下的就是重启一下服务了。搞定!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值