Drupal Camp Minsk 2012

Последнии записи блога

www.aquanther.ru о нас портфолио контакты
 

Кэширующий прокси-сервер Varnish

Кто то любит золотые молотки и настраивает универсальное решение только на базе одного инструмента (например: nginx или lighttpd). А некоторым нравится вариант разделения на подзадачи и применения для решения каждой из них своего инструментария. Apache удобен для управление логикой работы веб-сервера, nginx быстро раздаёт файлы (вместо него можно использовать lighttpd), а между ними можно поставить кэширующий прокси-сервер Varnish (вместо него можно использовать Squid).

Установим Varnish, набрав в консоли:
apt-get install varnish
Откроем файл настроек Varnish:
/etc/varnish/default.vcl
и внесём в него изменения для настройки Ip адреса и порта на котором работает Apache (подробнее в статье: «Установка nginx перед Apache»):
backend default {
  .host = "127.0.0.1";
  .port = "80";
}
 
sub vcl_recv {
  # Normalize Content-Encoding
  if (req.http.Accept-Encoding) {
    if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|lzma|tbz)(\?.*|)$") {
      remove req.http.Accept-Encoding;
    } elsif (req.http.Accept-Encoding ~ "gzip") {
      set req.http.Accept-Encoding = "gzip";
    } elsif (req.http.Accept-Encoding ~ "deflate") {
      set req.http.Accept-Encoding = "deflate";
    } else {
      remove req.http.Accept-Encoding;
    }
  }
 
  # Remove cookies and query string for real static files
  if (req.url ~ "^/[^?]+\.(jpeg|jpg|png|gif|ico|js|css|txt|gz|
      # Удалите данный перенос строки фильтров в реальном файле
      zip|lzma|bz2|tgz|tbz|html|htm)(\?.*|)$"
) {
    unset req.http.cookie;
    set req.url = regsub(req.url, "\?.*$", "");
  }
}
Перезапустим Varnish (что бы изменения вступили в силу), набрав в консоли:
/etc/init.d/varnish restart
Изменим настройки виртуального хоста nginx (подробнее в статье: «Установка nginx перед Apache»):
location / {
  proxy_pass http://127.0.0.1:6081/;
  include    /etc/nginx/proxy.conf;
}
Перезапустим nginx (что бы изменения вступили в силу), набрав в консоли:
sudo /etc/init.d/nginx restart











    © 2007-2012 aquanther.ru