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日志比较

#LogFormat "%h %l %u %t \"%r\" %>s%b \"%{Referer}i\" \"%{User-Agent}i\"" combined

#LogFormat “\”%{X-Forwarded-For}i\” %l %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined

统计日志中客户端访问数量

cut -d " " -f1  www.sr1.com_access_log | sort |uniq -c|sort-rn -k1

结果:

4799 192.168.254.251

1335 192.168.254.250

2 192.168.254.191

apache不记录健康检查日志

由于负载均衡的健康检查会造成apache的访问日志备大量写入,使得访问量无法统计,使用下面的方法可以让apache不再记录负载均衡的健康检查日志

配置(checkstatus.html):

SetEnvIfRequest_URI "^/checkstatus.html" dontlog

ErrorLog"logs/error_log"

LogLevel warn

CustomLog"logs/access_log" combined env=!dontlog

虚拟主机不记录健康检查日志(checkstatus.html):

<VirtualHost*:80>

DocumentRoot"/usr/local/httpd-2.2.9/htdocs/sr1/"

ServerName www.sr1.com

ServerAlias www.sr1.com

SetEnvIf Request_URI "^/checkstatus.html " dontlog

ErrorLog"logs/www.sr1.com_error_log"

CustomLog"logs/www.sr1.com_access_log" haproxy env=!dontlog

</VirtualHost>

时间: 2024-10-13 00:28:57

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

让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

Nginx反向代理多虚拟主机及记录真实客户IP

1.多虚拟机反向代理 ■ ___________________________________________________________ 主机信息: Nginx代理:192.168.1.201 Nginx_web_1:192.168.1.202 Nginx_web_2:192.168.1.203 测试机:192.168.1.204 -----------------------------------三台主机安装 #安装参数 cd /usr/local/src/ tar zxvf ngi

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

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

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

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 

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