Apache后端获取用户真实IP地址-nginx前端
mod_rpaf 是一个 Apache的模块,利用它可以给 Apache 的后端应用提供客户端真实的IP地址。
在nginx作为前端,apache作为后端的情况下,apache只能获取到nginx前端的ip地址,而无法获取到用户的真实ip地址,在这种情况下,如果php需要对用户的ip做限制将无法实现。针对这种环境,apache开发了相应的模块mod_rpaf,能够获取到用户的真实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]
分享到:
相关推荐
配置Nginx前端Apache后端服务器,负载均衡等
gridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-nginx-plugingridfs-...
ingress-nginx-controller-v1.2.0_daemonset用到的镜像,免费下载
最新版linux fastdfs-nginx-module-1.22.tar.gz
计算机后端-PHP视频教程. Nginx-0112 获取用户的IP_布尔教育.wmv
(注意注意,里面有个文件libfastcommon... fastdfs-nginx-module_v1.16.tar.gz FastDFS_v5.05.tar.gz libevent-2.0.22-stable.tar.gz libfastcommon_v1.01.tar.gz nginx-1.6.3.tar.gz ngx_cache_purge-2.3.tar.gz
nginx扩展工具,nginx的headers_more模块用于 添加、修改或清除 请求/响应头,该模块不是nginx自带的,默认不包含该模块,需要另外安装。幸运的是openresty默认包含了该模块,可以直接使用。 该模块主要有4个指令...
(f)Nginx sticky模块不能与ip_hash同时使用 sticky [name=route] [domain=.foo.bar] [path=/] [expires=1h] [hash=index|md5|sha1] [no_fallback] [secure] [httponly]; [name=route] 设置用来记录会话的cookie...
亲测可用,一定要fdfs对应版本
fastdfs-nginx-module_v1.16.tar.gz源码包,nginx支持fastdgs的插件
这个使用方法去这篇博客:https://cuichongxin.blog.csdn.net/article/details/120184717
encrypted-session-nginx-module set-misc-nginx-module ngx-postgres-module ngx-lua-module ngx_lua_upstream headers-more-nginx-module rds-json-nginx-module nginx-http-concat-module redis2-nginx-module ...
计算机后端-PHP视频教程. Nginx-01Nginx实战.doc
Nginx作为前端,Apache作为后端的情况下,Apache只能获取到Nginx前端的ip地址(127.0.0.1),而无法获取到用户的真实ip地址,在这种情况下,后端Apache如何获取用户真实IP地址?
计算机后端-PHP视频教程. Nginx-0204 nginx重写模块.wmv
计算机后端-PHP视频教程. Nginx-0202 nginx配置虚拟机.wmv
计算机后端-PHP视频教程. Nginx-0201 nginx初了解.wmv
lua-nginx-module-master,nginx编译lua模块必需文件lua-nginx-module
目前的项目网站架构中使用了F5和nginx,F5用来做负载均衡,nginx只用作反向代理服务器。最近应客户的要求准备去掉F5...上网搜索了一番,知道了nginx-sticky-module这个第三方模块可以基于cookie实现会话保持,决定试试
nginx集成lua脚本模块,配合nginx和ngx_devel_kit一起使用,注意lua_nginx_module的版本号,否则会出现时间类型不兼容