Nginx做前端时,后端Apache获得真实IP的做法

因为网站最前端是 NGINX,做的PROXY来转发 请求到内部的 apache上,所以获取的IP 都是NGINX PROXY CILLENT IP。
NGINX+APACHE环境搭建请参考《 Nginx+Apache+My sql+Php+eaccelerator+Zend 构建高 性能WEB 服 务器》一文,
这样很多基于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未必就会按照这个来接收,所以这里推荐一个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/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
接 着在 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
这样就可以获取客户端访问的真实IP了。

你可能感兴趣的:(apache,nginx,休闲,真实IP)