mod_rpaf 是一个 Apache的模块,利用它可以给 Apache 的后端应用提供客户端真实的IP地址。
在nginx作为前端,apache作为后端的情况下,apache只能获取到nginx前端的ip地址,而无法获取到用户的真实ip地址,在这种情况下,如果php需要对用户的ip做限制将无法实现。针对这种环境,apache开发了相应的模块mod_rpaf,能够获取到用户的真实ip地址。
如下图:
左边只能获取到nginx代理的IP地址,右边Apache才能获取到用户的真实ip地址
使用方法:文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/
# 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
具体安装配置请往下看
下载安装模块文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/
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配置文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/
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模块文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/
# /usr/local/apache2.2.15/bin/apachectl -M | grep rpaf rpaf_module (shared)
最后重启Apache即可文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/
# /usr/local/apache2.2.15/bin/apachectl -t # /usr/local/apache2.2.15/bin/apachectl restart
转载请注明出处:https://www.ttlsa.com/html/1022.html文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/
文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/文章源自运维生存时间-https://www.ttlsa.com/apache/apache-get-real-ip/我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
1F
X-Forwarded-For 写到日志里面不可以获取到真实的用户ip地址么?
来自外部的引用