И так, начнем с Varnish — это http accelerator. Если у Вас есть большое количество мелких файлов, отдающихся с диска и дисковый кеш Вас уже не спасает — это решение для Вас. Кроме всего прочего на основе varnish’a (но не только) можно построить архитектуру, позволяющую масштабировать это решение горизонтально без особых проблем.
Но, я его буду использовать в связке с nginx настроенным как бекэнд вот по этой статье
Установка Varnish:
rpm —nosignature -i http://repo.varnish-cache.org/redhat/el5/noarch/varnish-release-2.1-2.noarch.rpm
yum install varnish
yum install varnish
Переходим в папочку /etc/varnish/ и открываем файлик default.vcl вносим следующие изменения:
backend default {
.host = «localhost»;
.port = «8080»; # Порт на котором слушает Apache!
}
.host = «localhost»;
.port = «8080»; # Порт на котором слушает Apache!
}
Дальше в nginx вносим следующие изменения:
proxy_pass http://127.0.0.1:6081; # Трафик в Varnish
Перезапускаем nginx, apache и varnish. Не забудьте добавить varnish в автозагрузку.
skurudo says:
У меня возник вопрос, на который пока не могу найти ответ. В логах apache после varnish указывается локальный адрес, т.е. не передаются внешние адреса. Не совсем понятно, как можно передавать адреса по цепочке nginx -> varnish -> apache. При существующей связке nginx+apache этим занимается X-Real-IP + mod_rpaf.
Буду признателен за подсказку.