关于nginx的日志切割有很多种方法,这里列举两种方式:

1、在nginx配置文件里面的server模块配置:

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {

        set $year $1;
        set $month $2;
        set $day $3;
   }
   access_log  /data/logs/www/access.log-$year-$month-$day  main;

2、使用logrotate配置:

cat /etc/logrotate.d/nginx

/data/logs/www/*.log {      #日志的路径
daily #日志文件每天进行滚动
rotate 90 #保留最90次滚动的日志
missingok #如果日志不存在则忽略该警告信息
notifempty #如果是空文件的话,不转储
dateext #使用日期作为命名格式,切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,例:error.log-20110317
sharedscripts #运行postrotate脚本
postrotate
   if ;then
       kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
   fi
endscript
}
/usr/sbin/logrotate -f /etc/logrotate.d/nginx