让apache后端显示真实客户端IP

公司是nginx做代理,后端的web服务用的是apache,然后我现在要分析日志,但是,我的apache日志上显示的是代理服务器的ip地址,不是客户的真实IP

所以这里我需要修改一下,让apache的日志显示客户的真实IP。从网上记录搜了一些文档,现在整理如下。

文章参考:

http://www.ttlsa.com/apache/apache-get-real-ip/

http://www.weixiaodeyu.com/blog/yum-apache-install-mod_rpaf.html

首先要做的就是下载需要的模块:mod_rpaf

好多都是说:

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz下载模块,但是发现这个下载不了,按照其他的一些方法下载之后,发下安装的时候报错

于是请教了一朋友,他说他那里有包。但是他也不知道是从那里下的了

下载完压缩包之后就是解压了。tar   xf

cd mod_rpaf-0.6/

apxs  -i -c -n mod_rpaf-2.0.slo mod_rpaf-2.0.c

apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c网上还有一种说法是不同版本的apache安装这个模块的方法是不同的,我的是apache 2的安装成功后会有如下输出

注意:apxs工具如果不存在,使用yum install httpd-devel安装。

添加apache的配置

vim httpd.conf

找到LoadModule配置项,在最后面添加

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地址,有几个填几个

然后我们可以检查一下raaf 这个模块有没有装上

apachectl -M | grep rpaf

rpaf_module (shared) 打印出这个就代表装上了。

修改完成之后,重启apache,同时再开一个窗口打印日志

会发现日志的ip发生了变化

时间: 2024-08-08 17:52:22

让apache后端显示真实客户端IP的相关文章

apache关于记录真实客户端ip和不记录健康检查日志

由于负载均衡会转发客户端的请求到web服务器,所以web服务往往记录的是负载均衡的IP,现在可以通过下面的配置,让apache记录真实客户端IP 语法 #LogFormat  "\"%{X-Forwarded-For}i\"%l %t \"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\"" combined 普通日志和记录客户端IP的apache日志比较 #L

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

nginx+tomcat集群配置(3)---获取真实客户端IP

前言: 在初步构建的nginx+tomcat服务集群时, 发现webserver获取到的客户端ip都是同一个, 皆为作为反向代理服务的nginx所在的机器IP. 这不太符合我们的基本需求, 为将来的数据挖掘和分析带来了麻烦. 不过不用担心, 本文将简单介绍其背后的原因和原理, 以及具体的解决方案, ^_^. 原因分析: webserver在获取客户端ip时, 默认的方式是通过request.getRemoteAddr(), 这种方式本质是从直连的socket中获取到的. 因此客户端直连web s

nginx前端代理tomcat取真实客户端IP

使用Nginx作为反向代理时,Tomcat的日志记录的客户端IP就不在是真实的客户端IP,而是Nginx代理的IP.要解决这个问题可以在Nginx配置一个新的Header,用来存储$remote_add,然后再Tomcat获取记录这个值. 新增nginx配置. server { listen 80; server_name www.xxxxx.com; location / { proxy_pass http://IP:8080/; proxy_set_header X-Real-IP $rem

apache 日志中记录代理IP以及真实客户端IP

vim /usr/local/apach2/conf/httpd.conf 默认情况下log日志格式为:LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined其中%h 是记录访问者的IP,如果在web的前端有一层代理,那么这个%h其实就是代理机器的IP,这不是我们想要的.在这种情况下,%{X-FORWARDED-F

(转)apache 日志中记录代理IP以及真实客户端IP

原文:http://ask.apelearn.com/question/960 https://www.ibm.com/mysupport/s/question/0D50z00005phrbqCAA/how-to-capture-real-client-ip-in-websphere-application?language=zh_CN 默认情况下log日志格式为:LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer

PHP 使用CURL库IP欺骗,隐藏真实客户端IP

首先搭建环境,建立个ip.php. 代码如下: <? error_reporting(0); function GetIP(){ if($_SERVER['HTTP_CLIENT_IP']){ $onlineip=$_SERVER['HTTP_CLIENT_IP']; }elseif($_SERVER['HTTP_X_FORWARDED_FOR']){ $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR']; }else{ $onlineip=$_SERVER['R

LAMP--Apache 日志记录代理 ip 和真实客户端 ip

默认的log日志格式在主配置文件 httpd.conf 中可以看到: [[email protected] ~]# vim /usr/local/apache2/conf/httpd.conf     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined     LogFormat "%h %l %u 

利用nginx反向代理,后端Web如何获取真实客户ip

利用nginx反向代理,后端Web如何获取真实客户端ip 一.nginx反向代理nginx,后端的nginx该如何配置才能获取到客户端的真实IP地址呢. 1.首先需要在nginx代理服务器上的配置文件nginx.conf上的 location 中添加一行参数: proxy_set_header  X-Real-IP  $remote_addr; 重启nginx服务 2.对后面的nginx进行配置 vim /usr/local/nginx/conf/nginx.conf 加入下面参数: set_r