关闭

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

标签: apache
420人阅读 评论(0) 收藏 举报
分类:

说明:我用的是nginx反向代理,实际上就是在logformat中添加%{X-FORWARDED-FOR}i,下面为实验过程

一、下面是我的nginx反向代理的配置文件内容

nginx主配置主配置文件

[root@nginx-server conf]# cat nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream lb_server {
      server 192.168.17.10;
      server 192.168.17.11;
    }
    include extra/lbserver.conf;
}

lbserver配置文件

[root@nginx-server conf]# cat extra/lbserver.conf 
server {
    location / {
        proxy_pass http://lb_server;
        proxy_set_header Host      $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

二、修改前

没有修改访问日志格式前的apache配置文件

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" common
</IfModule>

发现不能记录访问者的ip

[root@lamp-server ~]# tail -f /application/apache/logs/www-access_log 
192.168.17.13 - - [04/Dec/2016:13:40:29 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:40:31 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:40:34 +0800] "GET / HTTP/1.0" 200 35
  2.168.17.13 - - [04/Dec/2016:13:40:36 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:40:38 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:23 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:25 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:27 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:29 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:31 +0800] "GET / HTTP/1.0" 200 35

三、修改后

修改过访问日志格式后的apache配置文件

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b %{X-FORWARDED-FOR}i" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" common
</IfModule>

修改后再次访问测试

[root@lamp-server ~]# > /application/apache/logs/www-access_log        
[root@lamp-server ~]# tail -f /application/apache/logs/www-access_log 
192.168.17.13 - - [04/Dec/2016:14:04:49 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:51 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:53 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:55 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:57 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:59 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:05:01 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:05:03 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:05:05 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199

附录:我在客户机上的测试脚本

[root@myblog ~]# for n in `seq 20`;do curl www.amsilence.com;sleep 1;done;

注意:如果你在虚拟主机上面引用什么日志格式,就需要修改对应日志格式上的参数,不能改到别的日志格式上面

0
0
查看评论

apache记录真实的访问IP地址

apache记录真实IP地址问题:  在做反向代理的过程中,无论是nginx,lvs调度或者是haproxy在反向代理Apache的过程中,Apache或记录访问日志,但是如果默认不设置的话,记录的日志往往是代理服务器的IP地址信息,因为请求确实是从我们的代理服务器转发给我们的。如果我们...
  • xuejinliang
  • xuejinliang
  • 2015-11-18 17:30
  • 3002

怎样配置让apache访问日志记录真实客户端IP,而不是nginx代理服务器IP

默认apache记录的是nginx代理服务器的IP,并不是真实客户端的IP。怎样让其显示真正的客户端ip呢? 修改nginx配置文件,确保有这一行:proxy_set_header  X-Real-IP $remote_addr; 修改完配置文件后,重新加载配置文件(可以...
  • yujin2010good
  • yujin2010good
  • 2016-11-19 12:26
  • 559

如何通过配置F5 使业务程序获得真实客户端IP 及 IIS 日志记录真实客户端的IP

如何通过配置F5   使业务程序获得真实客户端IP   及 IIS 日志记录真实客户端的IP一:变更F5配置1:Local Traffic-Profiles-Http-改“Insert XForwarded For”为Enable2:Local Traffic...
  • snowfoxmonitor
  • snowfoxmonitor
  • 2009-08-20 12:39
  • 4179

nginx前端,tomcat后端服务器获取客户的真实IP,包括tomcat访问日志获取真实IP的配置

在安装完以nginx+tomcat的WEB服务器,使用默认的配置,会导致服务器上的日志文件,只有nginx日志能获取到客户的真实IP,而tomcat以及上面的JAVA WEB应用均不能正常获取到真正的IP地址,而仅是LOOP(回还地址127.0.0.1,或者0.0.0.0.0.0.1)
  • teddy17
  • teddy17
  • 2016-06-23 16:02
  • 5044

Apache日志格式及获取客户端IP

LogLevel warn LogFormat "%{clientip}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined ...
  • wych1981
  • wych1981
  • 2014-11-21 09:58
  • 1154

NAT负载均衡方式,apache如何在日志中记录客户端IP

在负载均衡中,有两种常用的方式,NAT和单臂(lvs叫DR),在nat方式下,后端apache只能看到负载均衡设备的IP而不是客户端的IP,如果想让apache记录客户端的IP,需要在负载均衡设备在请求后端apahce服务器时,在请求头中向apache传送一个环境变量,如在netscaler中设置s...
  • huyangg
  • huyangg
  • 2015-10-06 13:32
  • 1012

怎样配置让apache访问日志记录真实客户端IP,而不是nginx代理服务器IP

默认apache记录的是nginx代理服务器的IP,并不是真实客户端的IP。怎样让其显示真正的客户端ip呢? 修改nginx配置文件,确保有这一行:proxy_set_header  X-Real-IP $remote_addr; 修改完配置文件后,重新加载配...
  • u012767369
  • u012767369
  • 2017-05-24 11:14
  • 293

用apache反向代理解决单外网ip对应内网多个web主机的问题

用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的。 来源地址:http://www.itshantou.com/Servers/web/06/10/44219.html  ...
  • csnewdn
  • csnewdn
  • 2017-01-12 09:44
  • 1052

统计apache日志文件里访问量前十的ip并按从多到少排列

五月 31, 2012 by FandLR Filed under LinuxLeave a comment 解法1: cat access_log | awk ’{print $1}’ | sort | uniq -c | sort -n -r | head -10 解法2:cat acc...
  • qq_35587839
  • qq_35587839
  • 2016-09-25 21:42
  • 217986

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

apache日志中记录代理ip和真实客户机ip
  • wusilen
  • wusilen
  • 2016-12-04 14:25
  • 420
    个人资料
    • 访问:16493次
    • 积分:378
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条