nginx – 将日志访问和错误logging到pipe道,并使用multiloglogging旋转

我正在做的事:使用multiloglogging旋转nginx访问和错误日​​志

我的方法是:将nginx的访问和错误logging到一个pipe道,这样我就可以有另一个运行multilog的进程来读取该pipe道,并让multilog进行日志轮换

nginx.conf

access_log /var/log/nginx/access/pipe; error_log /var/log/nginx/access/pipe; 

我确定我创build了pipe道,并给予足够的权限给任何人做任何事情

 $ sudo mkfifo /var/log/nginx/access/pipe /var/log/nginx/error/pipe $ sudo chmod a+rwx /var/log/nginx/access/pipe /var/log/nginx/error/pipe 

但是,当我启动nginx时,它会挂起,就像它正在等待stdin或其他东西。 我可能在这里错过了一些东西。

我尝试简单的回声pipe道

 $ echo a > /var/log/nginx/access/pipe 

它也挂起,好像它正在等待更多的input。 也许吧

在启动Nginx之前,我认为multilog需要监听pipe道。

这个项目通过正确地绑定svlogd和nginx语义来解决这个问题,它有一个模拟nginx行为,一个压力testing和一个runit / runsv / svlogd集成的例子

项目标语:使用daemontools / runit的nginx日志轮转(分别为multilog / svlogd)