Попробуйте настроить директиву access_log
для входа в Unix FIFO-сокет.Создайте FIFO, используя mknod /path/to/access.log
, и попытайтесь настроить директиву access_log
для этого объекта FIFO.
Теперь вы можете написать скрипт, который будет открывать FIFO и читать содержимое из него в режиме реального времени., выполните ваши манипуляции с данными и вставьте нужные вам данные в базу данных по своему усмотрению.
Это удалит ежечасные всплески дискового ввода-вывода и даст вам гораздо более отзывчивые предупреждения.
Недостатком является то, что nginx может блокировать запись этих журналов доступа.(Я сомневаюсь в этом, но это возможно.) Возможно, вы захотите запустить свой сценарий на уровне несколько ниже nice
, чем на веб-сервере, просто чтобы убедиться, что вы всегда можете извлечь записи журнала доступа из FIFO быстрее, чем они выполняются.надевать.(Меньшие значения nice
имеют более высокие приоритеты. Подробнее см. nice(1)
.)