在维护web服务器时,有时候会需要分析服务器日志记录来维护优化服务器中的程序,查看网站状态,但往往日志在记录的时候会产生大量的图片、css等不需要的访问日志产生,那么该怎样过滤掉这些不需要统计的日志呢?
这里我们简单介绍下常用的web服务器nginx以及apache.
1、首先是nginx:
修改配置文件nginx.conf或conf文件夹vhosts文件夹下的test.conf配置站点的server双括号中
server {
.........添加配置...
}
添加如下代码:
location ~ .*\.(gif|jpg|jpeg|png|js|css)$ {
aaccess_log /dev/null;
}
或者
location ~ .*\.(gif|jpg|jpeg|png|js|css)$ {
{
access_log off;
}
重载配置后会自动过滤掉js、css以及图片等常用的静态文件日志,除了以上的配置还可以使用ngx_log_if扩展来排除不需要记录的日志.
2、apache服务器
首先打开conf\extra\下的vhosts.conf网站配置文件
<VirtualHost *:80>
DocumentRoot "C:/www"
ServerName xxx.xxx.xxx
ErrorLog "logs/网站域名-error.log"
CustomLog "logs/网站域名-access.log" common
</VirtualHost>
将其中的CustomLog "logs/网站域名-access_log" common
修改为:
CustomLog "|bin/rotatelogs.exe logs/xxxxxx-access_%Y%m%d.log 86400" combined env=!remove
其它环境下为:
CustomLog "|/usr/local/apache/bin/rotatelogs -l logs/xxxxxx-access_%Y%m%d.log 86400" combined env=!remove
指定使用apache自带的rotatelogs工具,%Y%m%d将日志按每天分割,combined表示是日志格式,指使用combined日志格式用来记录访问日志.然后继续在下方添加:
SetEnvIf Request_URI "\.(js|css|gif|jpg|png)$" remove
SetEnvIf匹配排除服务器中接受的请求中包含由后缀.gif.jpg.png.css.js的日志内容,命名为remove
<VirtualHost *:80>
DocumentRoot "C:/www"
ServerName kkk.kkk.kkk
ErrorLog "logs/kkk-error.log"
CustomLog "|bin/rotatelogs.exe logs/kkk-access_%Y%m%d.log 86400" combined
SetEnvIf Request_URI "\.(js|css|gif|jpg|png)$" remove
</VirtualHost>
然后保存后重启apache服务器,即可排除指定静态文件的访问日志.
其中ServerName 后面的为许哟啊设置的绑定域名.
以上就是常用的web网页服务器中不记录指定格式静态文件日志记录的常用方法.