码迷,mamicode.com
首页 > Web开发 > 详细

Apache访问日志、访问日志不记录静态文件、访问日志切割

时间:2018-05-14 11:39:10      阅读:258      评论:0      收藏:0      [点我收藏+]

标签: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访问日志、访问日志不记录静态文件、访问日志切割

标签:Apache访问日志   访问日志不记录静态文件   访问日志切割   

原文地址:http://blog.51cto.com/13503302/2116040

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!