nginx前端负载,后端apache获取真实IP设置

原文链接:

nginx前端负载,后端apache获取真实IP设置

参考文献: 前端Nginx,后端Apache获取用户真实IP地址  按照第二种方法设置不成功!

网站最前端是nginx,做的PROXY来转发请求到后端的apache上,所以获取的IP 都是NGINX PROXY 机器的IP,这对于分析和记录apache日志等很多基于IP判断的PHP程序都会出现一系列的问题,经过以下两处理便可让apache获取 正式的访问地址:
1.修改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转发到后端。
2.设置apache接受转发来的真实IP
说明:http://stderr.net/apache/rpaf/
下载:http://stderr.net/apache/rpaf/download/  下载地址没打开  新的可以下地址为:百度网盘 :http://pan.baidu.com/share/link?shareid=3151719376&uk=707012518

上面的扩展能保证apache能正常接受转发来的真实IP.

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 我的是 yum 安装 改为apxs实际地址 :/usr/sbin/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 172.150.48.1 # 填写Nginx的来访IP
RPAFheader X-Forwarded-For

为了方便管理 我把上面配置单独做成一个 配置文件:httpd-rpaf.conf

内容不变 需要在  http.conf中添加:

Include conf/http-rpaf.conf  #注意 conf/ 否则找不到正确路径

这样就可以获取客户端访问的真实IP了。

时间: 2024-10-21 08:32:17

nginx前端负载,后端apache获取真实IP设置的相关文章

nginx反向代理 后端apache获取真实ip方式

系统环境为 centos6.4 64位 nginx配置: 在server中加入 - proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; - 后端apache为yum安装方式: 在网上查找apache需要第三方的模块来获取真实的客户ip 网上给的下载地址用不了只能另辟新径 安装rpaf 我是rpm安装的 别的方式可以自行查找 方法如下 rpm -ivh ftp://ftp.pbone.net/mir

nginx反向代理tomcat日志获取真实IP

今天测试一下nginx反向代理功能时,让tomcat日志里获取用户真实IP地址,谷歌了一下,都是一篇文章的内容,复制了tomcat配置文件中的要修改的内容,可怎么也获取不到,神奇了就!无奈之下,仔细读每行复制的内容,发现问题了,估计都要是搜索到那篇文章的话,都得无法获取真实IP地址,就一个小小的地方.开始检查配置内容: (1)nigix  nginx.conf配置文件中: proxy_set_header  Host $host; proxy_set_header  X-Real-IP $rem

nginx转发及后端服务器获取真实client的IP

针对nginx的模块介绍可以查阅wiki:http://wiki.nginx.org/Modules 常用模块:HTTP Core Proxy Rewrite Upstream 原理:squid,varnish以及nginx等,在做反向代理的时候,因为要代替客户端去访问服务器,所以,当请求包经过反向代理后,在代理服务器这里这个IP数据包的IP包头做了修改,最终后端web服务器得到的数据包的头部的源IP地址是代理服务器的IP地址,这样一来,后端服务器的程序给予IP的统计功能就没有任何意义,所以在做

【 Tomcat 】后端tomcat获取真实IP

环境: nginx + tomcat nginx.conf 配置: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://backend_tomcat; tomat server.conf配置: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs&q

前端nginx代理服务器,后端tomcat记录真实IP

nginx+tomcat这种架构,如果后端tomcat配置保持默认,那么tomcat的访问日志里,记录的就是前端nginx的IP地址,而不是真实的访问IP.业务需求,需要对nginx.tomcat做如下配置: 1)nginx配置 ...... proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_fo

Nginx反向代理下IIS获取真实IP

1. iis 如果放在反向代理后面,日志里的c-ip是反向代理服务器的ip,不是真正用户的ip,想要记录用户的ip要做两件事. 一.在反向代理设置X-Forwarded-For段,以下为nginx下的配置示例: server { location { …… proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for; …… } } 二.在iis站点上安装下面这个isapi filter,这东西是在f5的开发论坛上找到的,按开发者的话说

LNAMP架构中后端Apache获取用户真实IP地址的2种方法(转)

一.Nginx反向代理配置: 1.虚拟主机配置 复制代码代码如下: location / {    try_files $uri @apache;} location @apache {internal;    proxy_pass http://127.0.0.1:8080;    include proxy.conf;} location ~ .*\.(php|php5)?$  {    proxy_pass http://127.0.0.1:8080;    include proxy.c

前端Nginx,后端Apache获取用户真实IP地址

Nginx作为前端,Apache作为后端的情况下,Apache只能获取到Nginx前端的内网ip地址(10.10.0.*),而无法获取到用户的真实ip地址,在这种情况下,后端是Apache如何获取用户真实IP地址? nginx 关键配置 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

开门见山,操作如下: 首先,在前端nginx上需要做如下配置: location / { proxy_pass http://test1; proxy_set_hearder host $host; proxy_set_header X-Real_IP $remoute_addr; proxy_set_header $proxy_add_x_forwarded_for; }; nginx会在把请求转向后台real-server前把http报头中的ip地址进行替换:这样操作完成后,real-ser