nginx - доступ к журналу и ошибка в конвейере и использование multilog для регистрации поворота

Что я пытаюсь сделать: Log rotate nginx access и журнал ошибок, используя multilog

Мой подход: протоколировать доступ и ошибки 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

и он также зависает, как будто он ждет большего ввода. Mayb

2 ответа

Я думаю, что multilog должен слушать каналы, прежде чем запустить Nginx.

этот проект решает ее путем правильного связывания семантики svlogd и nginx, имеет программу chargen, которая имитирует поведение nginx, стресс-тест и пример интеграции runit / runv / svlogd

Слоган проекта: ротация журнала nginx с помощью daemontools/runit (multilog/svlogd соответственно)

Другие вопросы по тегам