nginx - 将访问和错误记录到管道并使用 multilog 进行日志轮换

nginx - 将访问和错误记录到管道并使用 multilog 进行日志轮换

我正在尝试做的事情:使用 multilog 记录轮换 nginx 访问和错误日​​志

我的方法:将 nginx 访问和错误记录到管道中,这样我就可以让另一个进程运行 multilog,从该管道读取数据,并让 multilog 进行日志轮换

nginx.conf

access_log /var/log/nginx/access/pipe;
error_log /var/log/nginx/access/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 之类的东西一样。我可能在这里遗漏了一些东西。

我尝试对管道进行简单的回显

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

而且它还挂起,好像在等待更多输入。也许

答案1

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

答案2

这个项目通过正确绑定 svlogd 和nginx语义,它有一个模拟 nginx 行为的 chargen 程序、一个压力测试和一个 runit/runsv/svlogd 集成示例

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

相关内容