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 соответственно)