![Может ли Varnish обслуживать порт и клонировать запрос на другой порт?](https://rvso.com/image/769310/%D0%9C%D0%BE%D0%B6%D0%B5%D1%82%20%D0%BB%D0%B8%20Varnish%20%D0%BE%D0%B1%D1%81%D0%BB%D1%83%D0%B6%D0%B8%D0%B2%D0%B0%D1%82%D1%8C%20%D0%BF%D0%BE%D1%80%D1%82%20%D0%B8%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%20%D0%BD%D0%B0%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9%20%D0%BF%D0%BE%D1%80%D1%82%3F.png)
Мне нужно решить проблему в моем текущем развертывании. Текущее выглядит так.
Varnish на порту 80 перед Nginx на порту 8000 с поддержкой uWSGI
Проблема в том, что клиент хочет реализовать некоторую внутреннюю аналитику, которая требуется для бизнес-логики, реализованную на Python, обслуживаемую uWSGI. Большинство обращений к Varnish остались неучтенными (обращения анонимны). Было предложено два решения.
- Обращение клиентов к некэшированному серверу (здесь клиентами являются устройства Android). Два запроса на запрос очень затратны с точки зрения использования батареи.
- Проксируйте или клонируйте запросы на Varnish на другой сервер, где сервер аналитики может принять запрос. Может быть с UDP.
Актуально ли 2-е решение? Возможно ли это сделать? Если да, то как это можно сделать?
решение1
vmod_curl
Можно отправить дополнительный запрос на внешнюю конечную точку. Я бы посоветовал вам сделать это через vmod_curl
, cURL
модуль для Varnish.
Видетьhttps://github.com/varnish/libvmod-curlЧтобы получить больше информации.
Однако отправка дополнительного вызова для каждого входящего запроса может быть довольно обременительной для вашей аналитической системы. Причина, по которой вы, вероятно, используете Varnish, заключается в том, чтобы избежать перегрузки ваших исходных систем.
Инструменты Varnish для ведения журнала и статистики
А когда дело доходит до аналитики, инструменты, предоставляемые Varnish, не имеют себе равных.
Вот несколько ссылок на инструменты Varnish для ведения журнала и статистики:
- http://varnish-cache.org/docs/6.0/reference/varnishlog.html
- http://varnish-cache.org/docs/6.0/reference/varnishncsa.html
- http://varnish-cache.org/docs/6.0/reference/varnishstat.html
- http://varnish-cache.org/docs/6.0/reference/varnishtop.html
Инструменты ведения журнала ( varnishlog
, varnishtop
& varnishncsa
) основаны на VSL, поэтому вот некоторые ссылки на VSL:
- http://varnish-cache.org/docs/6.0/reference/vsl.html
- http://varnish-cache.org/docs/6.0/reference/vsl-query.html
И наконец, вот ссылка на счетчики, которые используются varnishstat
:http://varnish-cache.org/docs/6.0/reference/varnish-counters.html