Пол-Хенинг Камп (Poul-Henning Kamp), один из известных разработчиков FreeBSD, участвовавший в создании таких систем, как MD5crypt, GEOM, GBDE и FreeBSD Jail, представил (https://varnish-cache.org/lists/pipermail/varnish-announce/2...) релиз Varnish 6.0 (https://www.varnish-cache.org/), высокопроизводительного кэширующего прокси, предназначенного для работы в роли HTTP-акселератора. Проект распространяется под лицензией BSD и используется в проектах Facebook, Wikimedia, Twitter, Vimeo, Tumblr, New York Times и Guardian.Благодаря применению многопоточности и современных методов мультиплексирования соединений, таких как epoll и kqueue, а также системных вызовов sendfile и madvise, Varnish демонстрирует отличную производительность, например, на обычном оборудовании способен обработать поток в 20 Gbps и обеспечить ускорение отдачи запросов в 300-1000 раз. Кэш хранится в виртуальной памяти. Особенностью Varnish является способность собирать отдаваемые страницы по частям на стороне фронтэнда, определяя логику сборки на языке ESI (http://varnish-cache.org/wiki/ESIfeatures) (Edge Side Includes).
Varnish также предоставляет очень гибкую систему конфигурации, в которой допускается использование вставок на языке Си. Для конфигурации используется специальный язык VCL (http://varnish-cache.org/wiki/VCL), который затем компилируется в исполняемый бинарный код. VCL позволяет описать политику обработки запроса: определить обрабатываемый контент, откуда его получить и как преобразовать перед отдачей. Базовая функциональность может расширяться через модули (https://www.varnish-cache.org/vmods/). Присутствуют механизмы балансировки нагрузки, учета состояния и времени реакции бэкенд-серверов.
Основные новшества (http://varnish-cache.org/docs/6.0/whats-new/changes-6.0.html):
- Поддержка подключения клиентов и серверов бэкендов через Unix Domain Socket;
- Расширение поддержки протокола HTTP/2 и доведения её до готовности к промышленному применению;
- Новый модуль vmod_directors (http://varnish-cache.org/docs/6.0/reference/vmod_directors.g...) с реализацией различных методов балансировки нагрузки между бэкендами;- Новый модуль vmod_proxy (http://varnish-cache.org/docs/6.0/reference/vmod_proxy.gener...) для извлечения атрибутов TLV, используя proxy-protocol-v2;
- Новый модуль vmod_unix (http://varnish-cache.org/docs/6.0/reference/vmod_unix.genera...) для получения информации о пользователе и группе, под которыми работает процесс, подключившийся через Unix Domain Socket;- Новый модуль vmod_vtc (http://varnish-cache.org/docs/6.0/reference/vmod_vtc.generat...) с инструментами для написания тестов для проверки различных пограничных ситуаций.
URL: https://varnish-cache.org/lists/pipermail/varnish-announce/2...
Новость: https://www.opennet.dev/opennews/art.shtml?num=48274