Nginx做前端时让Apache能得到真实IP的做法

Holmesian ,Dec 13 00:23 , 学习路上 » 日积月累 , 评论(0) , 引用(0) , 阅读(754) , 本站原创 | |
因为本网站最前端是NGINX,做的PROXY来转发请求到内部的apache上,所以获取的IP都是NGINX PROXY CILLENT IP。 这样很多基于IP判断的PHP程序都会出现一系列的问题 下面说说在Nginx做前端时让Apache能得到真实IP的做法 只修改NGINX的配置文件NGINX.CONF 在里面加上
引用
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
这只是告诉NGINX在反向代理的时候发送域名和客户真实IP Apache未必就会按照这个来接收 至少FreeBSD7 Apache2.2的环境下是不会的 所以这里推荐一个apache的第三方的mod
引用
说明:http://stderr.net/apache/rpaf/
下载:http://stderr.net/apache/rpaf/download/
最新版本是 mod_rpaf-0.6.tar.gz
使用起来非常简单 首先安装
引用
# tar zxvf mod_rpaf-0.6.tar.gz 下载后解压
# cd mod_rpaf-0.6
#/usr/local/bin/apxs -i -a -c mod_rpaf.c Apache 1.3.x 的安装方式
#/usr/local/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c Apache 2.x 的安装方式
接着在httpd.conf中添
引用
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 # 填写Nginx的来访IP
RPAFheader X-Forwarded-For
确认全部成功后重启apache 好了 现在可以获取真实IP了
Tags: , ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]