分类: LINUX
2012-07-30 18:33:35
参考链接:http://hi.baidu.com/ugo5/blog/item/a2bc5c8c7c4733e1503d92ee.html
nginx cronolog日志分割配置文档,根据下面方法,每小时分割一次NGINX访问日志
1.nginx日志配置
log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ;
在相应的日志位置调用日志格式,并将日志写入管道。
access_log /www/log/access_log_pipe main;
2.先创建一个命名管道
mkfifo /www/log/access_log_pipe
3.配置cronolog:
nohup cat /www/log/access_log_pipe | /usr/sbin/cronolog /www/log/domain.access_%Y-%m-%d-%H.log &
对于大日志,甚至可以按分截断
4.启动Nginx
/usr/local/nginx/sbin/nginx
注意:
cronolog必须在nginx启动前启动
个人感受:
1. 每日志每管道不如apache那样爽快。
2. 管道必须在nginx 启动前启动。如果nginx 未运行,开启cronolog 后(即管道),nginx –t 做检测会中断 管道。而cronolog不开启,nginx –t 及启动全部会受影响。(可以通过strace 查看)
3. 如无特殊要求,还是建议按天通过常规计划任务reload nginx方法进行截断。如需按时甚至按分截断,可以考虑通过计划任务+脚本处理。