On 05.02.2024 15:21, Anatoliy Melnik via nginx-ru wrote:
>> какую именно проблему Вы пытаетесь решить с помощью записи логов
>> в unix socket, чтения данных из unix socket`а питоновским скриптом
>> и потом записи данных этим питоновским скриптом в текстовой файл?
> Если вы предлагаете писать напрямую с nginx-а в файл -- сделайте у себя ротацию файлов с интервалом 30 сек при 200-250 тыс подключений/сек...
> Если у вас уже есть такое рабочее решение - поделитесь опытом, буду рад вас выслушать.
Создание нормального рабочего решения должно начинаться
с внимательного чтения документации и исходников nginx.
Какую именно существующую проблему Вы пытаетесь решить
с помощью ротации лог-файлов с интервалом в 30 секунд?
> А на текущем отрезке времени:
> Спасибо, я уже все решил :)
Нет. Вы просто создали себе еще большую проблему на ровном месте.
Потому что если программа, которая читает данные из unix socket`а
отвалится - тогда произойдет переполенение буфера и nginx тогда
заблокируется на операции записи в unix socket, и как следствие
этого - перестанет выполнять свою основную функцию - перестанет
отвечать на запросы клиентов по http / https протоколу.
То есть, то что Вы сделали - это достаточно хрупкое
и ненадежное "решение", особенно в условиях высоких нагрузок.
Не всегда нужно все подряд писать в лог, например,
можно ограничиться записью в лог только ответов с 4хх и 5хх статусами,
в таком случае - не будет той проблемы, которую Вы пытаетесь
решить таким способом с помощью unix-socket`а и python.
Так же не понятно, в чем для Вас проблема переименовать
log-файл и отправить сигнал USR1 мастер-процессу nginx,
для того, чтобы он переоткрыл log-файл и продолжил запись.
Особенно, если учесть, что директива https://nginx.org/r/access_log
имеет дополнительные параметры [buffer=size] [flush=time] [if=condition]
Вместо этого - какие-то жуткие костыли - то syslog, то unix socket и
питоновские скрипты, читающие данные из этого unix-socket`а пишущие
текстовые файлы, то еще что-то.
Вы так и не ответили на мой вопрос, какую именно проблему
Вы пытаетесь решить таким вот нетривиальным способом?
https://habr.com/ru/companies/dododev/articles/467047/
Феномен XY: как избежать «неправильных» проблем
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru