Задать вопрос

Как считать количество обращений к картинке через nginx?

Господа, поковырялся сегодня с утра и внятного ничего не нашел. Требуется выводить статистику по обращениям к картинкам, картинки ес-но в статике и не хотелось бы их выдавать по средствам скриптов. Как умные люди считают количество обращений к статичному контенту? Смотрел уже и парсеры логов типа wiki.nginx.org/NginxHttpLogRequestSpeed, но что-то подсказывает, что не самый хороший путь решения задачи.



Вот имеется такой модуль wiki.nginx.org/HttpEchoModule#echo_exec но не знаю на счет быстроты работы. Вообщем, у кого были аналогичные задачи, поделитесь вариантами решения. Заранее благодарю за ответ!
  • Вопрос задан
  • 4172 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
@bondbig
да нормальный способ с парсингом лога. Заведите отдельный лог для картинок и считайте его.
Ответ написан
@SMiX
Решение с x_accel_redirect породит кучу постоянных запусков cgi-процессов, а это большая нагрузка на систему.
Лучше, чтобы в системе висел один процесс-демон, который мониторит вывод команды `tail -f /var/log/access.log` и в реальном времени пишет в базу.
Ответ написан
@SMiX
Обратите внимание на Scribe
Scribe is a server for aggregating log data streamed in real time from a large number of servers. It is designed to be scalable, extensible without client-side modification, and robust to failure of the network or any specific machine.
Ответ написан
Tonik
@Tonik
У нас была несколько другая задача, но я согласен с мнение выше. Лучше всего парсить логи. При помощи syslog-ng мы сделали перенаправление нужных логов на центральный сервер, где небольшой демон парсит логи и вносит данные в бд. Очень удобной.
hint — nginx не умеет пихать данные в syslog. Зато syslog-ng умеет мониторить произвольный лог файл
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
cat /var/log/nginx-log-от-картинок-с-секциями | grep чтонибудь | wc -l
Ответ написан
Комментировать
TDz
@TDz
Специально для всяких каунтеров была директива post_action которая позволяет указать что будет запускаться после завершения запроса. Там можно подключить встроенный перл, мемкеш, фастцги, что угодно для умного подсчёта. Но если запрашивають часто то вешайте специальный лог на картинки в удобном для парсинга формате и его и парсите раз в X минут. Это с точки зрения нагрузки идеальный вариант. Также есть вариант со встроенными переменными, но больно он муторный
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы