varnish studio что это
CND Vinylux: почему я не вернусь к обычному лаку
Осторожно: простыня с многофоток)
Когда родила ребёнка, времени на маникюр стала совсем мало. Хочу рассказать о системе, которая поможет тем, кто в цейтноте — CND Vinylux. С ней можно накрасить ногти за 15 минут, лечь спать и наутро проснуться с нормальным покрытием без отпечатков подушки.
Что это, как наносить, плюсы и минусы
CND Vinylux — или для простоты «винилюкс» — что-то среднее между шеллаком и обычным лаком.
Система состоит из двух средств — лака CND Vinylux Long Wear Polish и топа CND Vinylux Long Wear Top Coat. На сайте марки увидела еще один вариант топа с эффектом гель-лака — CND Vinylux Gel-like Effect Top Coat, но я его не пробовала и не могу сказать, как он работает.
Как и в случае с шеллаком, CND были изобретателями технологии, которая потом разошлась и приобрела массу аналогов. Сейчас системы, похожие на винилюкс, есть у многих профессиональных ногтевых марок, да что там — даже у Vivienne Sabo. Я пробовала несколько из них, но все равно вернулась к CND: на моих ногтях он держится лучше всего.
Работает система так:
Для меня винилюкс оказался незаменимым, когда хочется цвета на ногтях, а на покрытие есть от силы полчаса. Я наношу два слоя лака с минимальным перерывом, а затем щедрый слой топа. Через 10 минут уже можно спокойно задевать вещи руками и заниматься хозяйством. Обычно для верности я жду минут 20. После этого можно уже ложиться спать.
Так выглядит покрытие на третий день
У винилюкса есть неприятная особенность: при нанесении второго слоя лака и топа можно сделать проплешины в цвете. Чаще всего это происходит, если нижний слой хорошо высох. Поэтому я стараюсь наносить второй слой лака и топ пожирнее и не делать очень большие паузы между нанесением.
После покрытия можно умыться и помыть руки: на стойкость это влияет слабо. Винилюкс начинает сходить быстрее, если принимать горячую ванну или мыть руки в горячей воде без перчаток. Но в целом частое мытье и чистку сантехники мягким средством выдерживает хорошо.
На моих ногтях такое покрытие держится в среднем семь дней. Обычно через пять дней появляются мелкие огрехи. У меня это даже не затертые кончики, а отслоения в районе кутикулы. Для сравнения: обычный лак я ношу три-четыре дня, а шеллак начинает отваливаться через семь дней. По стойкости могу сравнить только с системой Christina
Снимается винилюкс как обычный лак: жидкостью для снятия лака, отдельно размягчать покрытие не нужно.
Для меня отдельный плюс — то, что винилюкс мало травмирует ногти. Топ не сушит ногтевую пластину как обычные быстрые сушки. Все неприятности у меня были только от плохих ЖДСЛ.
Момент, который стоит учесть при выборе — версия лака. Они отличаются надписью на упаковке и кисточкой: у старой она более тонкая с ровным срезом, а у новой — широкая с закругленным. Так как лак может загустевать со временем, лучше брать новую версию: она скорее всего будет более свежей.
Слева старая версия лака, справа — новая
Кисточки: слева старая версия лака, справа — новая
Обзор доступных мне оттенков
В сети свотчей на винилюкс мало, а они нужны, так как покупать CND сейчас приходится в основном онлайн. Поэтому я сфотографировала все доступные мне оттенки — свои, коллекцию мамы и коллекцию сестры.
Постаралась сделать свотчи при дневном свете. Свотчи на ромашке молочного цвета, так как мои ногти сейчас не идеальном состоянии.
Все оттенки CND Vinylux можно условно разделить по текстуре на несколько групп. Это не официальная классификация, а основанная на моих ощущениях:
Многие оттенки шеллака и винилюкса совпадают. Так что если вам понравился какой-то цвет, можно поискать его аналог.
Дальше будет простыня свотчей, которые я постаралась разделить по группам.
Самая удачная группа оттенков. Красных в CND Vinylux много, они очень разные и почти все хорошие. Можно найти почти любой финиш и подтон.
First love —сложный для фото оттенок. Что-то среднее между красным и теплым розовым. Креле, беспроблемный.
Hollywood — оправдывает свое название. Классический теплый красный, слегка уходит в морковный. В базе плавает мелкий-мелкий золотистый шиммер, который придает покрытию интересный объем, хотя из-за него лак уходит совсем в ретро. Беспроблемный, праздничный.
Wildfire — классический яркий красный. Подходит почти всем и для любого случая. Сестра извела уже около пяти флаконов. Креле, цвет плотный.
Rouge Red — почти полный аналог Wildfire, в нем слегка больше синего. Тоже креле, наносится хорошо. Я не нашла его в списке цветов на официальном сайте, так что, похоже, этот оттенок сняли с производства.
Wildfire, Rouge Red, Hollywood
Rose Brocade — малиновый. Классный, красивый. Креле, носится в два слоя беспроблемно.
Rouge Rite — это моя любовь. Темный красный цвет с синим подтоном, который классно гармонирует с кожей и смотрится очень спокойным и уместным. Это такой красный, который носить проще, чем многие нюды) Креле, наносится беспроблемно.
Bloodline — кто помнит то время, когда каждый лакоманьяк считал нужным иметь в коллекции шанелевский Rouge Noir или его аналог? Вот это один из семейства ружнуаров. Более желейный, чем предыдущие товарищи. Может полосить и иногда требует три слоя вместо двух. Забавное совпадение: мой экземпляр Rouge Noir был с кривой лохматой кисточкой и у Bloodline она тоже кривая и лохматая) Прямо не судьба.
Leather Satchel — красно-коричневый с шиммером. Шиммер не выпирает, скорее придает больше объема. Интересный оттенок, но на мне выглядит немного тяжеловесно. Слегка жидковат, но легко наносится в два слоя.
Все красные: Rose Brocade, Hollywood, Wildfire, Rouge Red, First Love, Rouge Rite, Bloodline, Leather Satchel
Фиолетовые и розовые
Эта группа на втором месте по числу любимчиков. У CND Vinylux хорошие фиолетовые оттенки, а вот розовые — очень разные.
Beckoning Begonia — розовый с легкой фиолетовой ноткой и крупным серебристым шиммером. Наносится легко, без полос. Очень понравился в флаконе, а на руках разочаровал: нет фиолетовой нотки и он смотрится неинтересным розовым.
Crushed Rose — глубокий розовый с уходом в фиолетовый. Один из моих любимчиков: беспроблемный в нанесении и универсальный в носке, креле.
Brazen — пурпурный розовый. В флаконе кажется, что он более темный и фиолетовый, чем Crushed Rose, но на самом деле они почти неотличимы. Знаю, потому что делала двухцветный маникюр с ними. Но больше всего я люблю носить его с Boheme, о котором ниже. Этот лак тоже беспроблемное креле.
Tango Passion — яркий фиолетовый с шиммером. Честно говоря, купила только из-за названия, так как танцую танго) Сначала хотела отдать: он очень жидкий и нужно три слоя для плотного цвета. Но потом полюбила его для педикюра: подходит почти ко всем танцевальным туфлям)
Married to the Mauve — приглушенный коричнево-фиолетовый. Одно время такие оттенки были очень популярны. Но именно в этом случае мне не нравится баланс фиолетового и коричневого: последнего слишком много, мне не хватает серого и фиолетового. В целом хороший, рабочий представитель плотных креле.
Married to the Mauve
Plum Paisley — темный холодный фиолетовый с мелким серебристым шиммером. На ногтях довольно темный, но не выглядит тяжелым благодаря шиммеру. Плотный, беспроблемное нанесение.
Фиолетовые: Beckoning Begonia, Tango Passion, Crushed Rose, Brazen, Married to the Mauve, Plum Paisley
Здесь все сложно: есть идеальные нюды, а есть полосящий ужас.
Naked Naivette — молочный белый крем с розовинкой. Наносится тяжеловато, может полосить. Быстро загустевает.
Skin Tease — похож на предыдущий, но в нем больше желтого и коричневого. Наносится проще: не полосит и не так сильно густеет.
Dandelion — не совсем нюд, но около: сильно разбеленный бежево-желтый с перламутром. Вроде бы не самый простой оттенок, но на ногтях смотрится просто отлично. Может капризничать и полосить. Если повезет, справляюсь в два слоя. Обычно — в три.
Soulmate — светлый коричневато-коралловый. Понравился мне в флаконе, но не дружит с моим цветом кожи и превращается в противный выбеленный кирпичный. Креле, наносится легко.
Clay Canyon — светлый коричневый с легким оранжевым оттенком. Оказался для меня идеальным нюдом, особенно на лето. Креле, наносится легко, но может полосить.
Boheme — бежевый с оттенком какао. Отличный базовый цвет, особенно на зиму. Хорошо сочетать с другими цветами в маникюре. Креле, наносится беспроблемно.
Нюды: Naked Naivette, Dandelion, Skin Tease, Soulmate, Clay Canyon, Boheme и затесавшийся из прочих Rubble
Вообще я пыталась найти аналог оттенку из шеллака, но так как не спросила название, то все три раза попала мимо.
Tropix — слегка разбеленный коралловый. Яркий и сочный, но мне в нем не хватило розового. Креле, наносится в два слоя, но может полосить.
Lobster Roll — слегка разбеленный коралловый с той самой легкой розовинкой, которую я искала. Как и Tropix — креле, которое может слегка полосить.
Mango Beat — яркий кораллово-красный. Оставила его, потому что напомнил любимый Red Lights Ahead от OPI. Желе, наносится легко.
Коралловые: Lobster Roll, Mango Beat, Tropix
Немного оттенков, которые не попали в остальные категории.
Sun Bleached — пастельный желтый. В два слоя полосит, в три — отличный и долго носится.
Слева Sun Bleached, справа — Dandelion. Видно, что последний более телесно-бежевый
Sugar Cane — пастельный зеленый. Брат-близнец Sun Bleached, хотя и из другой коллекции. Ношу их чаще всего дуэтом. Тоже нужно три слоя для ровного покрытия.
Rubble — темно-серый, напоминает сырой цемент. Ужасный лак: цвет тупо серый, хотя по промо мне показалось, что есть нотка коричневого и лилового. Плотный крем, наносится тяжело. Мой экземпляр к тому же не новый, загустел и образовались комки. Помучилась для два раза и выбросила.
За прошедший год я пользовалась обычным лаком всего пару раз. В итоге я почти полностью перешла на CND Vinylux. Оставила лишь два лака Chanel, которые мне подарили близкие люди и у которых мне очень нравится цвет. Рекомендую винилюкс всем, кто ищет прочное и быстросохнущее покрытие.
Полировщик для веб-сайта. Знакомимся с кеширующим прокси Varnish
Содержание статьи
Немного о проекте
Varnish представляет собой кеширующий «обратный» (reverse) прокси‑сервер и акселератор HTTP. Принцип его работы в общем стандартен для такого класса программ. Он получает запрос, обрабатывает его и сразу выдает ответ, если он присутствует в кеше; если нет, то обращается к веб‑серверу за результатом. Ответ помещается в кеш. Varnish написан с нуля для норвежской газеты Verdens Gang. Версия 1.0 появилась в 2006 году, в 2014-м представлен релиз 4.0. Основной код доступен под BSD-подобной лицензии, но есть и коммерческие модули.
Проект сразу привлек себе внимание весьма громкими заявлениями автора, одного из разработчиков FreeBSD Пола‑Хеннинга Кампа (Poul-Henning Kamp) о том, что все (с намеком на Squid) сделано неправильно. И действительно, Varnish выделяет современный дизайн, эффективно использующий возможности современных многопроцессорных систем (Sqiud научился работать с SMP чуть позже с версии 3.2). Многопоточность реализована с помощью стандартных потоков POSIX, их количество регулируется. Это одна из причин, почему Varnish не очень хорошо работает в Windows. Каждый запрос обрабатывается в отдельном потоке. Причем с версии 4.0 за получение запроса от пользователя и передачу запроса серверу отвечают разные потоки, что еще более повысило производительность. Varnish поддерживает технологию ESI (Edge Side Includes), позволяющую разбивать веб‑страницу на части и запрашивать их отдельно. Кеш может хранить любую информацию. В итоге Varnish отлично подходит для кеширования динамического контента.
Для хранения данных (кеша, журналов операций) используется виртуальная память. Управлением того, что выгружается на диск, занимается ОС. Здесь авторы Varnish справедливо считают, что разработчики ОС свое дело знают, а дублирование только ухудшает производительность.
В отличие от Squid, который изначально больше ориентировался на кеширование клиентских запросов, Varnish был разработан и оптимизирован именно в качестве ускорителя HTTP и ничего другого больше не умеет. Мы не найдем здесь поддержку остальных протоколов (FTP, SMTP и прочие), не увидим возможности прямого прокси — кеширования веб‑страниц для экономии внешнего трафика (Varnish «привязывается» к бэкендам). Естественно, отличаются и возможности по конфигурированию.
Язык конфигурации Varnish Configuration Language (VCL) — динамический, скрипт сам по себе по сути является отдельным плагином. Код транслируется в С (можно сразу писать встраиваемый код на С), после чего инструкции компилируются в библиотеку и подгружаются в память. Можно вносить изменения в конфигурацию на лету. Инструкции в VCL позволяют кешировать только определенные запросы, снижая нагрузку при генерации динамических объектов, блокировать доступ к определенным каталогам и скриптам, подменять заголовки и многое другое. Есть и механизм проверки работоспособности бэкендов (замер времени ответа, счетчик неудачных проверок и так далее), возможность перезаписи и перенаправления (rewrite) запросов. Вообще, такой подход позволяет производить с HTTP-трафиком практически любые манипуляции, которые можно ограничить только собственным воображением. Поддерживается балансировка нагрузки (round robin, random и DNS, Client IP). Возможности расширяются при помощи модулей, называемых VMOD (Varnish MODules). Проект предоставляет необходимую документацию, позволяющую написать такой модуль самостоятельно. Часть модулей уже включены в стандартную поставку, некоторые доступны в виде концепта или находятся в разработке.
Проект уже предоставляет большое количество модулей
Сегодня Varnish используют такие веб‑сервисы, как Facebook, Twitter, Vimeo и Tumblr.
Установка и базовая настройка Varnish
Официально рекомендуется установка Varnish на современных версиях x64-битных Linux, FreeBSD или Solaris. Пакеты можно найти в дополнительных репозиториях (вроде EPEL или Ubuntu Universe) большинства дистрибутивов Linux и портах *BSD-систем. Сам проект предоставляет репозитории и подробные инструкции для Red Hat, Debian, Ubuntu и FreeBSD. В большинстве случаев следует использовать именно репозиторий разработчика, так как в нем находится более свежая версия продукта. Возможна работа и в Windows (через Cygwin), но оптимизация под *nix-системы не гарантирует максимальной производительности результата. На сайте доступны две версии Varnish — 3.x и 4.x, обе являются стабильными, но поддержка линейки 3.x будет прекращена в первой половине 2015 года. Кстати, код достаточно хорошо написан, поэтому исправлений вносится мало (например, 3-я ветка, появившаяся в июне 2011-го, содержала всего шесть версий), можно не бояться использовать свежие релизы. Стандартно Varnish ставится перед веб‑сервером и кеширует запросы. В нагруженных системах иногда используют более сложный вариант, когда вначале запрос принимает легкий веб‑сервер (nginx, lighttpd), который умеет быстро отдавать определенные страницы. При необходимости этот сервер через Varnish обращается к основному HTTP-серверу, генерирующему контент. Varnish при наличии информации в кеше отдает ее оттуда.
Для примера установим Varnish в Ubuntu 14.04 LTS в качестве фронтенда Apache. В других дистрибутивах отличия только в расположении конфигурационных файлов и особенностях пакетных систем.
Вот, собственно, и все. После установки Varnish стартует и что‑то там кеширует. Займемся конфигурированием. Установки параметров запуска демона производятся в файле /etc/default/varnish. Первоначально он сконфигурирован с некоторыми параметрами. Если открыть файл, то увидим внутри три готовые настройки: minimal, c VCL и advanced.
Файл /etc/default/varnish
По умолчанию активирован второй режим. При этом сервер принимает подключения на порт 6081, для администрирования используется localhost:6082, а бэкенд определяется в VCL. Для кеширования выделяется 256 Мб памяти. Настроим так, чтобы Varnish слушал 80-й порт, кешируя запросы HTTP-сервера, расположенного на этой же машине. Комментируем настройки второго варианта и в качестве шаблона будем использовать advanced, как более наглядный.
Linuxoid
OpenSource forever
Знакомимся с кэширующим прокси Varnish
Обработка большого числа запросов может быть весьма тяжелой задачей забирающей ресурсы веб-сервера. Чтобы снять нагрузку используют фронтэнд в качестве которого может выступать легкие nginx/lighttpd или кэширующий прокси-сервер. Во втором качестве очень популярен Squid, он универсален, но не всегда оптимален. Но именно в этой задаче его более эффективно заменяет Varnish.
Немного о проекте
Varnish(varnish-cache.org) представляет собой кеширующий “обратный” (reverse) прокси-сервер и акселератор HTTP. Принцип его работы вообщем стандартен для такого класса программ. Он получает запрос, обрабатывает его и сразу выдает ответ если он присутствует в кэше, если нет то обращается к веб-серверу за результатом. Ответ помещается в кэш. Varnish написан с нуля для норвежской газеты Верден Gang. Версия 1.0 появилась в 2006 году, в 2014 представлен релиз 4.0. Основной код доступен под BSD-подобной лицензии, но есть и коммерческие модули.
Появившись проект сразу привлек себе внимание весьма громкими заявлениями своего автора и одного из разработчиков FreeBSD Пол-Хеннинга Кампа (Poul-Henning Kamp), о том что все, что есть (с намеком на Squid) сделано не правильно. И действительно Varnish выделяет современный дизайн эффективно использующий возможности современных многопроцессорных систем (Sqiud научился работать с SMP чуть позже с версии 3.2). Многопоточность реализована с помощью стандартных потоков POSIX, их количество регулируется. Это одна из причин почему Varnish не очень хорошо работает в Windows. Каждый запрос обрабатывается в отдельном потоке. Причем с версии 4.0 за получение запроса от пользователя и передача запроса серверу отвечают разные потоки, что еще более повысило производительность. Varnish поддерживает технологию ESI (Edge Side Includes) позволяющую разбивать веб-страницу на части и запрашивать их отдельно. Кэш может хранить любую информацию. В итоге Varnish отлично подходит для кэширования динмамического контента.
Для хранения данных (кэша, журналов операций) используется виртуальная память, управлением того что выгружается на диск занимается ОС. Здесь авторы Varnish справедливо считают, что разработчики ОС свое дело знают, а дублирование только ухудшает производительность.
В отличие от Squid который изначально больше ориентировался на кэширование клиентских запросов, Varnish был разработан и оптимизирован именно в качестве ускорителя HTTP и ничего другого больше не умеет. Мы не найдем здесь поддержку остальных протоколов (FTP, SMTP и прочие), не увидим возможности прямого прокси — кэширования веб-страниц для экономии внешнего трафика (Varnish «привязывается» к бэкэндам). Естественно отличается и возможности по конфигурированию.
Язык конфигурации Varnish Configuration Language (VCL) — динамический, скрипт сам по себе по сути является отдельным плагином. Код транслируется в С (можно сразу писать встраиваемый код на С), после чего инструкции компилируются в библиотеку и подгружаются в память. Можно вносить изменения в конфигурацию «на лету». Инструкции в VCL позволяют: кэшировать только определенные запросы, снижая нагрузку при генерации динамических объектов, блокировать доступ к определенным каталогам и скриптам, подменять заголовки и многое другое. Есть и механизм проверки работоспособности бэкендов (замер времени ответа, счетчик неудачных проверок и т.д.), возможность перезаписи и перенаправления (rewrite) запросов. Вообще такой подход позволяет производить с HTTP трафиком практически любые манипуляции, которые можно ограничить только собственным воображением. Поддерживается балансировка нагрузки несколько алгоритмов (round robin, random и DNS, Client IP). Возможности расширяются при помощи модулей, называемых VMOD (Varnish MODules). Проект предоставляет необходимую документацию позволяющих написать такой модуль самостоятельно. Часть модулей (varnish-cache.org/vmods) уже включены в стандартную поставку, некоторые доступны в виде концепта или находятся в разработке. Проект уже предоставляет большое количество модулей
Сегодня Varnish используют такие веб-сервисы как Facebook, Twitter, Vimeo и Tumblr.
Установка и базовая настройка Varnish
Официально рекомендуется установка Varnish на современных версиях x64 битных Linux, FreeBSD или Solaris. Пакеты можно найти в дополнительных репозитариях (вроде EPEL или Ubuntu Universe) большинства дистрибутивов Linux и портах *BSD систем. Сам проект предоставляет репозитарии и подробные инструкции для Red Hat, Debian, Ubuntu и FreeBSD. В большинстве случаев следует использовать именно репозитарий разработчика, так как в нем находится более свежая версия продукта. Возможна работа и в Windows (через Cygwin), но оптимизация под *nix системы не гарантируют максимальную производительность результата. На сайте доступны две версии Varnish 3.x и 4.x, обе являются стабильными, но поддержка линейки 3.x будет прекращена в первой половине 2015 года. Кстати код достаточно хорошо написан, поэтому исправлений вносится мало (например 3 ветка появившаяся в июне 2011 содержала всего 6 версий) можно не боятся использовать свежие релизы. Стандартно Varnish ставится перед веб-сервером кэшируя запросы. В нагруженных системах иногда используют более сложный вариант, когда вначале запрос принимает легкий веб-сервер (nginx, lighttpd), который умеет быстро отдавать определенные страницы. При необходимости этот сервер, через Varnish обращается к основному HTTP-серверу генерирующему контент. Varnish при наличии информации в кэше отдает ее оттуда.
Для примера установим Varnish в Ubuntu 14.04 LTS в качестве фронтэнда Apache. В других дистрибутивах отличия только в расположении конфигурационных файлов и особенностях пакетных систем.
Вот собственно и все. После установки Varnish стартует и что-то там кэширует. Займемся конфигурированием.
Установки параметров запуска демона производится в файле /etc/default/varnish. Первоначально он сконфигурирован с некоторыми параметрами. Если открыть файл, то увидим внутри три готовые настройки: minimal, c VCL и advanced. Файл /etc/default/varnish
По умолчанию активирован второй режим. При этом сервер принимает подключения на порт 6081, для администрирования используется localhost:6082, а бэкэнд определяются в VCL. Для кэширования выделяется 256 Мб памяти. Настроим так чтобы Varnish слушал 80 порт, кэшируя запросы HTTP сервера расположенного на этой же машине. Комментируем настройки 2 варианта и в качестве шаблона будем использовать Advanced, как более наглядный.
Это основные установки. С остальными можно познакомиться в файле или в документации проекта.
Перестраиваем Apache, чтобы он слушал 8080 порт. В зависимости от текущих установок это можно сделать в разных файлах, в общем идея выглядит так:
Минимальные установки готовы. Перезапускаем Varnish:
Проверяем при помощи netstat слушается ли порт и доступен ли веб-сервер.
Продвинутые настройки
Это самый простой пример и как видим заставить Varnish кэшировать запросы очень легко, но он пока не «разбирается» и не вмешивается в трафик. Познакомившись с VCL можно расширить базовые возможности. Параметров которые можно настроить очень много и чтобы их описать потребуется книга. VCL это язык программирования в котором найдем все что присуще — переменные, функции, комментарии и т.п. Вариантов использования много и сходу их освоить не получится. В качестве отправной точки можно рекомендовать документацию проекта, в частности Varnish Book(varnish-software.com/static/book). Также в Сети уже есть достаточно шаблонов(github.com/mattiasgeniar/varnish-3.0-configuration-templates) под разные ситуации подготовленных самими пользователями. Они являются хорошим подспорьем по изучению возможностей VCL.
Varnish способен работать с несколькими HTTP-серверами (бэкендами). Каждый определяется аналогично примеру выше:
После чего можно строить правила указывая сервера по имени.
Если бэкенды равнозначны и используются только для распределения нагрузки, то достаточно сообщить об этом Varnish с помощью директивы “director”:
Можно также использовать случайный выбор – для этого вместо “round-robin” необходимо прописываем “random”.
Возможна реализация и более сложных алгоритмов. Но для этого нужно познакомиться с возможностями VCL файлов.
В default.vcl мы увидим несколько именованных блоков (функций). По умолчанию параметры внутри отсутствуют, вот именно с их помощью и производится тонкая настройка кэширования. Кое-что можно установить не вникая в работу приложений на веб-сервере, в более сложных случаях потребуется глубокий анализ выдаваемых страниц (проект предоставляет некоторые утилиты о которых дальше).
Разберем некоторые из них. Порядок вызова функций наглядно показан в разделе [VCL Basics](varnish-software.com/static/book/VCL_Basics.html), некоторые вопросы конфигурирования есть в [документации](varnish-cache.org/docs).
Списки ACL позволяют упралявть доступом к определенным URL или вручную распределять или обрабатывать запросы некоторых клиентов. Создадим правило которое включает все локальные узлы.
Как видим разрешается инвертирование при помощи «!» т.е. 192.168.1.10 не попадает под правило. Теперь к этому списку можем обратиться при помощи конструкции (client.ip
local)
Функция vcl_recv вызывается при получении запроса и перед проверкой данных в кэше. Именно здесь можно модифицировать запрос, удалить Cookie, произвести нормализацию, выбрать бэкэнд в зависимости от запроса и т.д.
По умолчанию Varnish не кэширует запросы с установлены Cookie. Для статических страниц, лучше активировать такую возможность, для этого просто вырезаем Cookie. Также для примера запретим доступ к файлам cron.php и install.php для всех узлов кроме локальных и скажем Varnish, чтобы он перенаправлял все запросы к update.php сразу на бэкэнд.
Это конечно не все что можно сделать. Используя req.http.User-Agent можем распределять бэкенды в зависимости от браузера/устройства клиента. Подробнее (varnish-cache.org/docs/trunk/users-guide/devicedetection.html).
Функция return в случае с vcl_recv может принимать аргументы: lookup — указывает на необходимость поиска в кэше, pass — сразу отправляет запрос на бэкэнд. Последнее как видим позволяет избежать кэширования определенных типов файлов, например медиа или постоянно обновляющегося контента.
Некоторые функции вызывают пустыми, просто чтобы пропустить определенную проверку указав нужный код возрата. Кроме указанных выше возможны варианты — deliver, fetch, hash, pipe, error, restart, retry.
Функция vcl_hash позволяет определить уникальность запроса, который будет кэшироваться. По умолчанию хэш формируется на основании URL и IP/имени сервера. В большинстве случаев этого достаточно, но в некоторых ситуациях этого нехватает и возможно потребуется изменение правил. Например, для определения уникальности используют Сookie.
Функция vcl_error позволяет генерировать контент не обращаясь к веб-серверу, используется для выдачи сообщений об ошибках и редиректа.
Далее в зависимости от ситуации запрос обрабатывается vcl_fetch, vcl_pass и vcl_miss. В 4.0 они заменены более удобные функции vcl_backend_fetch и vcl_backend_response, которые вызываются перед передачей запроса серверу и после получения ответа, соотвественно.
В следующем примере мы убираем выставление cookie для файлов изображений, а также задаем время жизни кэшированного содержимого для этих файлов в 1 час.
И перед отправкой полученных от бэкэнда данных вызывается функция vcl_deliver. В простейшем случае она пустует, то есть ответ передается без изменений. Но здесь можно при желании модифицировать заголовки. Для примера просто удалим все упоминания о Varnish:
Это конечно далеко не все возможности, но нужно идти дальше.
Управление Varnish
Работой Varnish можно управлять и отслеживать результат. Для этого в поставке идет несколько утилит начинающихся с varnish*. Все они описаны в разделе «Appendix A: Varnish Programs» Varnish Book. Основной утилитой является varnishadm. Именно с ее помощью производится администрирование, просмотр статуса и ошибок, загрузка модулей «на лету». Принцип работы очень прост. Вызываем:
После чего появится приглашение Varnish CLI. Чтобы получить список команд следует ввести «help». Список команд varnishadm
Команд не много (23), значение большинства понятно из названия. Подробности по каждой можно получить введя «help команда«. Например, группа команд vcl.* позволяют просматривать и управлять загрузкой, выгрузкой модулей. Смотрим список модулей:
Команды param.show и param.set позволяют просматривать и изменять параметры сервиса, panic.show и panic.clear — отображать и очищать ошибки, ban и ban.list — указывать страницы не подлежащие кэшированию. И так далее.
Две команды varnishtop и varnishhist очень помогают при первоначальной настройки т.к. позволяют просмотреть список наиболее частно встречающихся параметров (URL, идентификаторы, статус и т.д.). Первая утилита выводит их в виде top, вторая как гиксограму. При запросе можно использовать регулярные выражения, поэтому потеряться в большом количестве страниц невозможно. Например, просмотрим список наиболее запрашиваемых URL и заголовки:
Еще три очень полезных утилиты позволяющие просмотреть статистику (varnishstat), и информацию в журналах (varnishlog и varnishncsa). Скрипт varnishtest дает возможность проверить работу кэша Varnish.
Для тех кто не хочет разбираться с командной строкой разработчик предлагают веб-интерфейс Varnish Administration Console (varnish-software.com/resources/vac-demo) — очень удобный инструмент предлагающий произвести все описанные операции и получать статистику в наглядном виде. Интерфейс Varnish Administration Console
Правда есть минус — доступен он только в коммерческой версии Varnish Plus.
Бесплатное ПО пока не богато вариантами. Плагины поддерживающие Varnish есть в системах мониторинга Collectd, Nagios, Cacti и других. Список известных проектов можно найти на сайте (varnish-cache.org/utilities).
!
Вывод
Varnish это очень гибкая программа позволяющая управлять кэшированием трафика с веб-ресурсов. Большие возможности подразумевают большое количество настроек. Поэтому некоторое время придется затратить на их изучение и подгонку под конкретные условия. Но результат того стоит.