作者:shunz,出处:http://shunz.net/2008/07/nginx_log_rotation.html
Nginx是一款采用Linux 2.6内核epoll新机制开发的Web服务器软件,能极大地提高Web访问特别是小文件访问的I/O性能,是c10k问题的一个解决方案。有测试称Nginx比Apache效率提高10倍,而从我自己上次的测试来看,其并发性能确实比Apache强不少。Nginx以短小精悍著称,所以虽然一些web核心功能他都支持得挺好,但是一些扩展功能却还不能支持,比如Nginx目前就还不支持通过pipe输出log,所以就不支持利用cronolog来按时间进行日志截断回滚。下面提供一种替代解决方案:[code]#!/bin/sh
log_dir="/var/log/httpd"
yesterday=`date +%Y%m%d -d '-1 day'`
lastday =`date +%Y%m%d -d '-1 month'`
/bin/rm ${log_dir}/access.${lastday}.log
/bin/rm ${log_dir}/error.${lastday}.log
/bin/mv ${log_dir}/access.log ${log_dir}/access.${yesterday}.log
/bin/mv ${log_dir}/error.log ${log_dir}/error.${yesterday}.log
kill -USR1 `cat /var/run/nginx.pid`
/bin/gzip ${log_dir}/access.${yesterday}.log &
/bin/gzip ${log_dir}/error.${yesterday}.log &[/code]然后将该脚本保存在/etc/cron.daily目录里,或者在crontab里每日0点时运行。
另外,还可以结合awstats进行日志分析,这里就不详细说了。

