Apache后端获取用户真实IP地址-nginx前端
mod_rpaf 是一个 Apache的模块,利用它可以给 Apache 的后端应用提供客户端真实的IP地址。
在nginx作为前端,apache作为后端的情况下,apache只能获取到nginx前端的ip地址,而无法获取到用户的真实ip地址,在这种情况下,如果php需要对用户的ip做限制将无法实现。针对这种环境,apache开发了相应的模块mod_rpaf,能够获取到用户的真实ip地址。
如下图:
左边只能获取到nginx代理的IP地址,右边Apache才能获取到用户的真实ip地址
使用方法:
1
2
3
4
5
6
7
|
# if DSO load module first:
LoadModule
rpaf_module
libexec
/
apache2
/
mod_rpaf
-
2.0.so
RPAFenable
On
RPAFsethostname
On
RPAFproxy
_ips
127.0.0.1
10.0.0.1
RPAFheader
X
-
Forwarded
-
For
|
具体安装配置请往下看
下载安装模块
1
2
3
4
|
wget
http
:
//stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar
-
xzvf
mod_rpaf
-
0.6.tar.gz
cd
mod_rpaf
-
0.6
/
/
usr
/
local
/
apache2
.
2.15
/
bin
/
apxs
-
i
-
c
-
n
mod_rpaf
-
2.0.slo
mod_rpaf
-
2.0.c
|
添加apache配置
1
2
3
4
5
6
7
8
|
vi
/
usr
/
local
/
apache2
.
2.15
/
conf
/
httpd
.
conf
# 在最后一行复制如下内容
LoadModule
rpaf_module
modules
/
mod_rpaf
-
2.0.so
RPAFenable
On
RPAFsethostname
On
RPAFproxy
_ips
127.0.0.1
192.168.50.10
# 代理服务器的ip地址(记得做相应修改)
RPAFheader
X
-
Forwarded
-
For
备注:
RPAFproxy
_ips后面添加代理服务器的
ip地址
,有几个填几个
|
查看apache是否有rapf模块
1
2
|
# /usr/local/apache2.2.15/bin/apachectl -M | grep rpaf
rpaf_module
(
shared
)
|
最后重启Apache即可
1
2
|
# /usr/local/apache2.2.15/bin/apachectl -t
# /usr/local/apache2.2.15/bin/apachectl restart
|
转载请注明出处:http://www.ttlsa.com/html/1022.html
收 藏
成长的对话版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!