Nginx访问日志
###设置日志格式
vim /usr/local/nginx/conf/nginx.conf //搜索log_format
###定义虚拟主机日志格式
定义虚拟主机的前提是在Nginx配置文件中设定日志格式,然后才能在虚拟主机中进行调用(格式名称)。
定义test.com.conf日志格式:
[root@jiangshan vhost]# vim test.com.conf
access_log /tmp/test.com.log combined_realip; #指定日志位置及格式
####检查错误:
[root@jiangshan vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
####重启
[root@jiangshan vhost]# /usr/local/nginx/sbin/nginx -reload
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Nginx日志切割
自定义shell 脚本
vim /usr/local/sbin/nginx_log_rotate.sh//写入如下内容
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d`
#定义切割时间(切割一天前的日志)
logdir="/tmp/"
#此处指定要切割的日志路径(该路径来自虚拟主机配置文件)
nginx_pid="/usr/local/nginx/logs/nginx.pid"
#调用pid的目的是执行命令:/bin/kill -HUP `cat $nginx_pid`
#该命令等价于命令:nginx -s reload(重新加载文件),确保与虚拟主机配置文件变更保持同步
#该地址来自nginx配置文件
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done
#此处使用通配进行循环,对所有复合条件的日志文件进行切割
/bin/kill -HUP `cat $nginx_pid`
#执行此命令进行重载生成新的日志文件来记录新的日志
###任务计划
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
静态文件不记录日志和过期时间
###编辑配置文件如下
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#匹配文件类型
{
expires 7d;
#过期时间为7天
access_log off;
#不记录该类型文件的访问日志
}
location ~ .*\.(js|css)$
{
expires 12h;
#过期时间为12小时
access_log off;
#不记录该类型文件的访问日志
}
access_log /tmp/test.com.log combined_realip;
#指定日志位置及格式