Varnish для виртуальных хостов
Возникла потребность поставить очень "тяжелую" CMS - Magento. Всё бы хорошо, да вот только Xeon с четырьмя головами еле шевелился. Apache уходил просто в ступор от каждого запроса. Помимо этой CMS, планировалось поставить еще два-три виртуальных хоста, условно домашние странички пользователей, вот тут на помощь и пришел акслератор сайтов Varnish. Вся документация посути есть в мануалах самого акселератора. Идея с виртуальными хостами озвучена уже давно. Так что сразу делаем выжимку:
В httpd.conf пишем:Listen 8080
NameVirtualHost *:8080
В самих виртуальных хостах:
<VirtualHost *:8080>
ServerName golas.ru
</VirtualHost>
<VirtualHost *:8080>
ServerName testservergolas.ru
</VirtualHost>
Varnish запускаем на 80 порту DAEMON_OPTS=" -a 93.x.x.x:80 -f /etc/varnish/virtual.vcl -s malloc,1024M" и с кэшем в памяти. Ну и самое основное это наш конфигурационный файл virtual.vcl, в котором и производим настройки для каждого виртуального хоста.
Настраиваем бэкэнд сервер, для виртуальных он будет выглядеть как:backend default {
.host = "127.0.0.1";
.port = "8080";
}
Редактирование заключается в "подстройке" двух функций vcl_recv и vcl_fetch с привязкой для виртуальных серверов, идея вычленения самих виртуальных хостов с помощью req.http.host позаимствована по ссылкам свыше. Если виртуальных серверов много, то через include для каждого виртуального удобней. И немного результатов производительности:
root@linux ~#ab -n 1500 -c 150 http://xxxxx.by/
без акселератора для magento, Requests per second получалось порядка: 0.87 [#/sec] (mean), с ним уже : 421.33 [#/sec] (mean)
Визуально сайт летает.
Контактная информация
Если у Вас есть какие-либо вопросы, Вы можете связаться с нами:
Отдел продаж: (с 10:00 до 18:00)
Icq: 155-10-6525
E-mail: sales@golas.ru