`
langzhiwang888
  • 浏览: 176888 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Apache后端获取用户真实IP地址-nginx前端

 
阅读更多

Apache后端获取用户真实IP地址-nginx前端

mod_rpaf 是一个 Apache的模块,利用它可以给 Apache 的后端应用提供客户端真实的IP地址
在nginx作为前端,apache作为后端的情况下,apache只能获取到nginx前端的ip地址,而无法获取到用户的真实ip地址,在这种情况下,如果php需要对用户的ip做限制将无法实现。针对这种环境,apache开发了相应的模块mod_rpaf,能够获取到用户的真实ip地址。

如下图:
nginx代理下-apache获取用户真实ip地址
左边只能获取到nginx代理的IP地址,右边Apache才能获取到用户的真实ip地址
使用方法:
[codesyntax lang="java" lines="no"]
# 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
[/codesyntax]

具体安装配置请往下看
下载安装模块
[codesyntax lang="java" lines="no"]
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
[/codesyntax]

添加apache配置
[codesyntax lang="java" lines="no"]
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地址,有几个填几个
[/codesyntax]

查看apache是否有rapf模块
[codesyntax lang="java" lines="no"]
# /usr/local/apache2.2.15/bin/apachectl -M | grep rpaf
rpaf_module (shared)
[/codesyntax]

最后重启Apache即可
[codesyntax lang="java" lines="no"]
# /usr/local/apache2.2.15/bin/apachectl -t
# /usr/local/apache2.2.15/bin/apachectl restart
[/codesyntax]


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics