在nginx的访问日志种,我们可以发现好多图片的访问的日志,这些东西并没有什么作用,我们可以设置让nginx不记录对这些东西的访问:
我们可以单独记录这个虚拟机服务器的日志,在nginx的配置文件种,我们已经设置日志格式别名为“test”可以根据自己的需求定义的格式:
server
{
listen 80;
server_name www.test.com www.123.com;
index index.html index.htm index.php;
root /data/www;
access_log /tmp/logs/access_log test; #开启日志
if ($host != 'www.test.com') {
rewrite ^/(.*)$ http://www.test.com/$1 permanent;
}
location ~ .*forum\.php$ {
auth_basic "auth";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
location ~ .*\.(gif|jpg|png|jpeg|bmp|swf)$ { #不记录对这些东西的访问
access_log off;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
}
创建日志所在的位置:
mkdir /tmp/logs
重新加载配置文件后,访问论坛,会发现,日志种并没有以上述后缀结尾图片的访问记录!
日志切割:
nginx并没有像apapche中logrotate那样的切割工具,因此我们需要自己写一个!脚本如下:
cat nginx_logrotate.sh
#!/bin/bash
#nginx访问日志切割
d=`date -d "-1 day" +%F`
mv /tmp/logs/access_log /tmp/logs/$d.log #更改日志的名字
/etc/init.d/nginx reload > /dev/null #重新加载配置文件,以便生成新的日志
gzip -f /tmp/logs/$d.log #若日志太大,还可以压缩,-f强制压缩
把上面的脚本执行,然后把执行脚本的命令写入cornt计划任务即可!
转载于:https://blog.51cto.com/zidingyi/1889983