12.10 Nginx访问日志
1.查看日志格式,在主配置文件搜索log_format
#vim /usr/local/nginx/conf/nginx.conf //配置文件以“;”分割,下面3行,其实是一行配置
关于配置信息的说明
2.在虚拟主机配置文件中添加日志的配置信息
# vim /usr/local/nginx/conf/vhost/test.com.conf
这里的combined_realip就是在nginx.conf中定义的日志格式名字,可以在主配置文件中自定义名字,虚拟主机配置文件中引用即可
3.检查语法重新加载 -t && -s reload
4.测试
# curl -x127.0.0.1:80 test2.com/admin.php -I
# curl -x127.0.0.1:80 test1.com/admin.php -I
查看日志
# cat /tmp/1.log
12.11 Nginx日志切割
自定义shell脚本,写入以下内容
# vim /usr/local/sbin/nginx_log_rotate.sh //以后写脚本默认放到/usr/local/sbin/目录下
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`
解释:
#d=`date -d "-1 day" +%Y%m%d` //定义一下d,是昨天的日期
#nginx_pid="/usr/local/nginx/logs/nginx.pid" //这条命令是为最后一条做准备的
#/bin/kill -HUP `cat $nginx_pid` //类似于-s reload
执行脚本
# sh -x /usr/local/sbin/nginx_log_rotate.sh //-x ,查看执行的过程
清理日志
#fing /tmp/ -name *.log-* -type f -mtime +30 |xargs rm //删除超过30天的日志
制定任务计划
#crontab -e //写入以下内容,每日零点执行脚本
12.12静态文件不记录日志和过期时间
1.编辑虚拟主机配置文件
#vim /usr/local/nginx/conf/vhost/test.com.con //添加如下配置
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d;
access_log off;
}
location ~ .*\.(js|css)$
{
expires 12h;
access_log off;
}
2.检查语法重新加载 -t && -s reload
3.测试
创建1.gif和2.js文件
访问,//这里可以看到过期时间“Expires: Tue.......”为一周
查看日志文件,可以看到只有一条日志被记录了