标签:Apache访问日志 访问日志不记录静态文件 访问日志切割
1、Apache 访问日志输入命令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
这个虚拟机的访问日志就在 /logs/111.com-access_log 里面,输入命令 ls /usr/local/apache2.4/logs/ ,可以看到访问日志文件,见下图,
可以使用命令 cat /usr/local/apache2.4/logs/111.com-access_log,查看一下内容,回车,见下图,
这边显示的日志太简单,看不出什么重要信息,可以定义一下日志的格式,打开主配置文件,输入命令 vim /usr/local/apache2.4/conf/httpd.conf,回车,搜索 /LogFormat,见下图,
LogFormat 后面就是日志的格式,后面白色单词为 common 的是默认格式。上一行的 User-Agent,是用户代理的意思,例如浏览器和curl。Referer 表示在浏览器上记录上一次访问的网址。现在更改虚拟主机配置文件,输入 :q!,回车,强制退出上图界面。输入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
更改上图红色框框的内容为 combined,保存并退出。接着往下操作,
然后用浏览器访问 111.com/123.php ,见下图,
接着回到 putty ,输入命令 cat /usr/local/apache2.4/logs/111.com-access_log,查看最后几行,见下图,
明显比之前的丰富。
2、访问日志不记录静态文件
现在登录一个网站,按F12(笔记本电脑按Fn+F12),右侧就会出现一个界面,见下图,
选择 Network 页面,再刷新网页,就能看到下图界面,
可以看到,访问的是一个网站,但是加载的东西却非常多。每一行都表示一个元素,这些请求和访问都会被记录在访问日志里。把鼠标放在行项目上就显示一个地址,点击进去也可以看到地址,见下图,
这个地址就是一个请求,会被记录在访问日志里。如果每一条都记录在日志里的话,产生的内容会非常多,占用的内存也非常大,这明显是不合理的。所以需要更改配置文件,将图片、css、js等内容排除掉,不做记录。接下来更改虚拟主机的配置文件,输入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
在上图红色框框的位置,插入以下内容:
SetEnvIf Request_URI "..gif$" img
SetEnvIf Request_URI "..jpg$" img
SetEnvIf Request_URI "..png$" img
SetEnvIf Request_URI "..bmp$" img
SetEnvIf Request_URI "..swf$" img
SetEnvIf Request_URI "..js$" img
SetEnvIf Request_URI ".*.css$" img
下面一句的后面,加入 env=!img,保存并退出。“”双引号里面内容是正则表达式,后面的 img 是标记,env=!img 意思为将标记为 img 的内容都不做记录。
这边先不重新加载配置文件,也就是说刚刚更改的内容暂不生效,先做 一个实验,输入命令 curl -x127.0.0.1:80 111.com/aghjkk.jpg -I,回车,见下图,
aghjkk.jpg 是不存在的文件,随机填写的。查看日志的时候,还能看到这条 jpg 的记录。接着重新加载配配置文件,见下图,
来检查一下 jpg 和 png,是否有记录,具体操作见下图,
可以看到,jpg5 有记录,jpg 和 png 都没有记录。
图片使用 putty 上传比较麻烦,这边不演示了。
使用命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
将 env=!img 这些字符,删除掉,保存并退出。重新加载一下配置文件,接着访问 jpg、png,见下图,
可以看到删除 env=!img,访问 jpg、png 都会被记录。验证这一点后,再把 env=!img 加上去,这边不演示了。
需要注意的是 img 这个名字是随意的,取名 lys 也是可以的。
3、访问日志切割
输入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回车,见下图,
更改上图红色框框的内容,保存并退出。rotatelogs 是 apache 自带的切割工具,-l 以当前系统的时间(CST)为基准,不指定 -l 就会以 UTC 时间为基准切割日志。再定义一下日志的名字,%Y%m%d 表示年月日。然后定义切割一次的时间,一般是一天,换算成秒就是 86400。
重新加载配置文件,见下图,
现在还没有日志生成,要做一些访问,才可以看到访问日志,见下图,
可以看到访问日志里面,就是刚刚访问的那一条。接着验证,见下图,
现在的日志是每天一个,还需要做一个计划,把超过一个月或是两个月的日志删除掉,这样才不会占用空间,并且让日志切割变的有意义,查找的时候也会很方便。
标签:Apache访问日志 访问日志不记录静态文件 访问日志切割
原文地址:http://blog.51cto.com/13503302/2116040