Может ли Varnish обслуживать порт и клонировать запрос на другой порт?

Может ли Varnish обслуживать порт и клонировать запрос на другой порт?

Мне нужно решить проблему в моем текущем развертывании. Текущее выглядит так.

Varnish на порту 80 перед Nginx на порту 8000 с поддержкой uWSGI

Проблема в том, что клиент хочет реализовать некоторую внутреннюю аналитику, которая требуется для бизнес-логики, реализованную на Python, обслуживаемую uWSGI. Большинство обращений к Varnish остались неучтенными (обращения анонимны). Было предложено два решения.

  1. Обращение клиентов к некэшированному серверу (здесь клиентами являются устройства Android). Два запроса на запрос очень затратны с точки зрения использования батареи.
  2. Проксируйте или клонируйте запросы на Varnish на другой сервер, где сервер аналитики может принять запрос. Может быть с UDP.

Актуально ли 2-е решение? Возможно ли это сделать? Если да, то как это можно сделать?

решение1

vmod_curl

Можно отправить дополнительный запрос на внешнюю конечную точку. Я бы посоветовал вам сделать это через vmod_curl, cURLмодуль для Varnish.

Видетьhttps://github.com/varnish/libvmod-curlЧтобы получить больше информации.

Однако отправка дополнительного вызова для каждого входящего запроса может быть довольно обременительной для вашей аналитической системы. Причина, по которой вы, вероятно, используете Varnish, заключается в том, чтобы избежать перегрузки ваших исходных систем.

Инструменты Varnish для ведения журнала и статистики

А когда дело доходит до аналитики, инструменты, предоставляемые Varnish, не имеют себе равных.

Вот несколько ссылок на инструменты Varnish для ведения журнала и статистики:

Инструменты ведения журнала ( varnishlog, varnishtop& varnishncsa) основаны на VSL, поэтому вот некоторые ссылки на VSL:

И наконец, вот ссылка на счетчики, которые используются varnishstat:http://varnish-cache.org/docs/6.0/reference/varnish-counters.html

Связанный контент