分类: 系统运维
2009-12-23 19:05:32
nginx 的日志是不支持 |/path/to/cronolog 这样的写法的,不能直接支持 cronolog 来轮转日志。但是日志总是要拆分的。一般都是每天跑一个 crontab ,把原来的日志 mv 一下,然后 kill -USR1 让 nginx 重新打开日志文件。
以前想到过应该可以利用命名管道来做这事情,昨天去实践了一下。
先创建一个命名管道,
mkfifo /path/to/nginx/logs/access_log_pipe ,当然也可以直接用命名管道代替原来的日志文件。
然后让 cronolog 从这个文件读:
/path/to/cronolog /path/to/log/access_%Y%m%.log < /path/to/nginx/logs/access_log_pipe &
把 nginx 的日志路径指到那个命名管道然后重启一下就可以了。之后在 nginx 的启动脚本里要把启动 cronolog 放在启动nginx 之前。