让 nginx 用上 cronolog

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 之前。

 

2 thoughts on “让 nginx 用上 cronolog

  1. lostsnow December 18, 2008 / 9:08 pm

    我都是用logrotate
    然后crond

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s