Лак (программное обеспечение)
![]() | Эта статья может содержать чрезмерные или неуместные ссылки на самостоятельно опубликованные источники . ( июнь 2014 г. ) |
Разработчик(и) | Пол-Хеннинг Камп , Redpill-Linpro , Varnish Software |
---|---|
Стабильная версия | 7.4.2 [1] ![]() |
Репозиторий | |
Написано в | С |
Операционная система | БСД , Линукс , Юникс |
Тип | HTTP-ускоритель |
Лицензия | лицензия BSD с двумя пунктами |
Веб-сайт | лак-кеш ![]() |
Varnish — прокси-сервер обратного кэширования. [2] используется в качестве ускорителя HTTP для динамических веб-сайтов с большим содержанием контента, а также API . В отличие от других веб-ускорителей , таких как Squid , который начинал свою жизнь как кэш на стороне клиента, или Apache и nginx , которые в первую очередь являются исходными серверами , Varnish был разработан как HTTP-ускоритель. Varnish ориентирован исключительно на HTTP , в отличие от других прокси-серверов , которые часто поддерживают FTP , SMTP и другие сетевые протоколы .
История
[ редактировать ]Инициатором проекта выступило онлайн-отделение норвежской таблоидной газеты Verdens Gang . Архитектор и ведущий разработчик — датский независимый консультант Пол-Хеннинг Камп. [2] (известный разработчик FreeBSD ), управление, инфраструктуру и дополнительные разработки изначально предоставила норвежская консалтинговая компания по Linux Linpro . Поддержка, управление и развитие Varnish позже были выделены в отдельную компанию Varnish Software.
Varnish — бесплатное программное обеспечение с открытым исходным кодом состоящей из двух пунктов , доступное по лицензии BSD, . Коммерческая поддержка доступна, среди прочего, от Varnish Software.
Версия 1.0 Varnish была выпущена в 2006 году. [3] [4] Лак 2.0 2008 года, [5] Лак 3.0 2011 г., [6] Лак 4.0 2014 года, [7] Лак 5.0 в 2016 году, [8] Лак 6.0 в марте 2018 года, [9] и Varnish 7.0 в сентябре 2021 г. [10]
Архитектура
[ редактировать ]Varnish хранит данные в виртуальной памяти и оставляет задачу принятия решения о том, что храниться в памяти, а что выгружаться на диск, операционной системе . Это помогает избежать ситуации, когда операционная система начинает кэшировать данные, когда они перемещаются на диск приложением.
Varnish сильно поточен : каждое клиентское соединение обрабатывается отдельным рабочим потоком. При достижении настроенного ограничения на количество активных рабочих потоков входящие соединения помещаются в очередь переполнения; когда эта очередь достигнет настроенного предела, входящие соединения будут отклонены.
Основным механизмом настройки является язык конфигурации Varnish (VCL), предметно-ориентированный язык (DSL), используемый для написания перехватчиков, вызываемых в критических точках обработки каждого запроса. Большинство политических решений оставлено на усмотрение кода VCL, что делает Varnish более настраиваемым и адаптируемым, чем большинство других HTTP-ускорителей. [ нужна ссылка ] Когда скрипт VCL загружается, он преобразуется в C , компилируется в общий объект системным компилятором и загружается непосредственно в ускоритель, который, таким образом, можно переконфигурировать без перезапуска.
Ряд параметров времени выполнения управляют такими вещами, как максимальное и минимальное количество рабочих потоков, различные тайм-ауты и т. д. Интерфейс управления из командной строки позволяет изменять эти параметры, а также компилировать, загружать и активировать новые сценарии VCL. , без перезапуска акселератора.
Чтобы свести к минимуму количество системных вызовов в быстром пути, данные журнала хранятся в общей памяти , а задача мониторинга, фильтрации, форматирования и записи данных журнала на диск делегируется отдельному приложению.
Показатели производительности
[ редактировать ]Varnish Cache может ускорить доставку информации в несколько сотен раз. Чтобы обеспечить правильную работу и производительность, Varnish предоставляет метрики, которые можно отслеживать в следующих областях: [11]
- Клиентские метрики : клиентские соединения и запросы.
- Производительность кэша : попадания в кэш , вытеснения
- Метрики потоков : создание потоков, сбои, очереди.
- Внутренние метрики : успех, неудача и работоспособность внутренних соединений.
Метрическая коллекция
[ редактировать ]Varnish Cache поставляется с инструментами мониторинга и ведения журналов. Одним из наиболее часто используемых является лакстат, который дает подробный снимок текущей производительности Varnish. Он обеспечивает доступ к статистике в памяти, такой как попадания и промахи в кэше, потребление ресурсов, созданные потоки и многое другое. [12]
лакстат
[ редактировать ]Запуск лакстата из командной строки возвращает постоянно обновляемый список всех доступных метрик Varnish. Если добавлен флаг -1, лакстат завершит работу после однократной печати списка. [13] Varnishstat можно использовать как отдельный инструмент для выборочной проверки состояния кэша. Чтобы отображать метрики с течением времени, сопоставлять их с другими статистическими данными по всей инфраструктуре и настраивать оповещения о любых проблемах, которые могут возникнуть, службы мониторинга могут интегрироваться с Varnish и собирать метрики Lacstat.

лаковое бревно
[ редактировать ]Varnishlog — это инструмент, который можно использовать для отладки или настройки конфигурации Varnish, поскольку он предоставляет подробную информацию о каждом отдельном запросе.
Балансировка нагрузки
[ редактировать ]Varnish поддерживает балансировку нагрузки с использованием как циклического перебора , так и случайного директора, причем оба имеют взвешивание для каждого бэкэнда. Также доступна базовая проверка работоспособности серверных частей. [14]
Другие особенности
[ редактировать ]Varnish Cache также включает в себя:
- Поддержка плагинов с модулями Varnish, также называемыми VMOD. [15]
- Поддержка Edge Side включает в себя сшивку сжатых фрагментов ESI.
- Gzip- сжатие и распаковка
- DNS, случайные, хеширующие и клиентские директора на основе IP
- HTTP-потоковая передача и выборка
- Экспериментальная поддержка постоянного хранилища без вытеснения LRU
- Святой [16] и Грейс [17] [18] режимы.
- Если сервер работает со сбоями и возвращает код состояния HTTP 500 , льготный режим будет игнорировать заголовки истечения срока действия и продолжит возвращать кэшированные версии. Режим Saint предназначен для использования при балансировке нагрузки , когда неисправный сервер блокируется на период карантина и исключается из пула серверов.
См. также
[ редактировать ]- Веб-ускоритель , в котором обсуждается HTTP-ускорение на основе хоста.
- Прокси-сервер, на котором обсуждаются клиентские прокси.
- Обратный прокси , в котором обсуждаются прокси на стороне источника.
- Сравнение веб-серверов
- Протокол интернет-кэша
- Guru Meditation — сообщение об ошибке, используемое Varnish
Ссылки
[ редактировать ]- ^ «Релизы и загрузки» . Проверено 4 декабря 2023 г.
- ^ Перейти обратно: а б Ферин, Тейс. «1. Что такое Varnish Cache? - Начало работы с Varnish Cache [Книга]» . О'Рейли Медиа . Проверено 22 октября 2023 г.
- ^ «Адвент-календарь Catalyst — день 14» . www.catalystframework.org . Проверено 4 сентября 2020 г.
- ^ Смёрграв, Даг-Эрлинг (20 сентября 2006 г.). «Выпущен Varnish 1.0» . Проверено 4 сентября 2020 г.
- ^ Хин, Толлеф Туман (15 октября 2008 г.). «Выпущена версия Varnish 2.0!» . Проверено 4 сентября 2020 г.
- ^ Хин, Толлеф Туман (17 июня 2011 г.). «Выпущен Varnish 3.0.0» . Проверено 4 сентября 2020 г.
- ^ Карстенсен, Лассе (10 апреля 2014 г.). «Выпущен Varnish 4.0.0» . Проверено 4 сентября 2020 г.
- ^ «Varnish Cache 5.0.0 — Varnish HTTP Cache» . лак-кэш.org . Проверено 4 сентября 2020 г.
- ^ Пол-Хеннинг Камп (15 марта 2018 г.). «Выпущена версия Varnish 6.0» . Проверено 15 мая 2018 г.
- ^ Пол-Хеннинг Камп (9 августа 2022 г.). «Выпущен Varnish Cache 7.0.0» . Проверено 9 августа 2022 г.
- ^ «Основные показатели производительности Varnish» . Лучшие показатели производительности Varnish . 28 июля 2015 г. Проверено 4 сентября 2020 г.
- ^ «Как собирать метрики Varnish» . Как собирать метрики Varnish . 28 июля 2015 г. Проверено 4 сентября 2020 г.
- ^ «varnishstat(1): Статистика HTTP-ускорителя — справочная страница Linux» . linux.die.net . Проверено 4 сентября 2020 г.
- ^ «BackendPolling — Varnish» . Varnish-cache.org. Архивировано из оригинала 21 августа 2010 г. Проверено 18 июля 2014 г.
- ^ «Каталог VMODs (модули и расширения Varnish) | Сообщество Varnish» . Varnish-cache.org . Проверено 18 июля 2014 г.
- ^ «Святой режим» . Лак . Архивировано из оригинала 7 мая 2011 года.
- ^ «Режим благодати» . Лак . Архивировано из оригинала 9 мая 2011 года.
- ^ Ферин, Тайс (2017). Начало работы с Varnish Cache: ускорение ваших веб-приложений . О'Рейли Медиа, Инк. с. 85. ИСБН 9781491972229 .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Официальный коммерческий сайт
- Заметки архитектора
- « Вы делаете это неправильно », 11 июня 2010 г. Статья ACM Queue разработчика Varnish Пола-Хеннинга Кампа, описывающая реализацию списка LRU.
- Лак с точки зрения непрофессионала
- Инструкции по использованию Varnish Cache
- Обратный прокси
- Бесплатные прокси-серверы
- Программное обеспечение прокси-сервера для Linux
- Сетевое программное обеспечение Unix
- Бесплатное программное обеспечение, написанное на C.
- Бесплатное программное обеспечение веб-сервера
- Кроссплатформенное программное обеспечение
- Форвард прокси
- Программное обеспечение, использующее лицензию BSD