Varnish - быстрый старт
Varnish - это http accelerator. Если у Вас есть большое количество мелких файлов, отдающихся с диска и дисковый кеш Вас уже не спасает - это решение для Вас. Кроме всего прочего на основе varnish’a (но не только) можно построить архитектуру, позволяющую масштабировать это решение горизонтально без особых проблем.
Из сильных сторон varnish’a следует отметить:
- VCL язык для кофигурирования позволяет настраивать сервер практически под любые нужды
- Обслуживание контента даже с учетом мертвых или медленных бекендов
- Web интерфейс для менеджмента и множество профилирующих и мониторинговых утилит(действительно высококлассных)
Более подробное описание достоинств варниша можно найти тут.
Установка и запуск
Varnish можно поставить практически на все известные дистрибутивы линуксов и юниксов. У Вас существует выбор из нескольких вариантов для установки, но вероятность присутствия варниша в пакетах вашей ОСи весьма велика, и компилировать руками врядли понадобиться.
Для Ubuntu все выглядит так:
sudo apt-get install varnish
И все… После установки из пакетов для варниша будет згенерирован скрипт управления (/etc/init.d/varnish) и сервер будет запущен со стандартными настройками.
Конфигурация параметров демона
После установки из пакетов в случае ubuntu у Вас появится файл /etc/default/varnish, который и стоит отредактировать:
sudo nano /etc/default/varnish
Самые распространенные конфигурационные параметры:
- VARNISH_ADMIN_LISTEN_ADDRESS - какой адрес будет слушать демон
- VARNISH_ADMIN_LISTEN_PORT - какой порт будет слушать демон
- VARNISH_MIN_THREADS - минимальное количество воркеров (тредов) для запуска
- VARNISH_MAX_THREADS - максимальное количество воркеров
- VARNISH_STORAGE_FILE - расположение файла кеша
- VARNISH_STORAGE_SIZE - размер файла (модет быть указан в человеко-читаемых числах:) )
Настройка, тюнинг и VCL
Все настройки для varnish’a указываются на специальном языке - VCL. Файл с настройками по умолчанию в случае пакетов ubuntu будет лежать тут: /etc/varnish/default.vcl
Файл делиться на несколько секций, но то что нужно для начала работы - это указание бекендов:
Бекенд - это сервер, на который варниш будет слать запрос, если у него нет соответсвующих данных в кеше:
backend www {
.host = “backend1″; # Хост бекенда
.port = “80″; # Порт бекенда
}
Varnish также поддерживает балансировку бекендов по принципу round-robin. Для этого нужно использовать объявление “директора”:
director wwwdirector round-robin {
{ .backend = www; }
{ .backend = { .host = “backend2″; .port = “80″; } }
}
После этого, в секции vcl_recv (процедура обработки контента) следует указать, что в качестве выбора бекендов стоит использовать директор:
sub vcl_recv {
if (req.request == “GET”) {
set req.backend = wwwdirector;
lookup;
}pass;
}
Вот и все, тепер у Вас установлен и настроен варниш. Последнее действие - это перезапуск сервера:
sudo /etc/init.d/varnish restart
Подробная статья об установке и настройке Varnish’a


только укажи что синтаксис твоего поста актуален для varnish 2.+
дабы не наступили на те же грабли