• Varnish- prosty serwer cache dla CentOS i nie tylko

    dodany przez Przemysław Sikora

    Pojęcie chmury obliczeniowej jest ostatnio bardzo modne i ładnie brzmi, szczególnie w ustach osoby odpowiedzialnej za marketing. Niestety duża część rozwiązań chmurowych dostępnych w naszym kraju to po prostu zwykłe maszyny wirtualne z możliwością płynnej regulacji zasobów. Idea chmury nie sprowadza się jednak tylko do tego, ale jeszcze do wysokiej dostępności i wydajności, dzięki rozłożeniu ruchu na kilka tzw. “nodów”. Podobną funkcjonalność można osiągnąć korzystając z oprogramowania takiego jak Varnish, dzięki któremu w łatwy sposób jesteśmy w stanie zbudować klaster serwerów webowych, który będzie w stanie obsłużyć duże ilości zapytań na sekundę, ale także zapewniać wysoką dostępność. Zacznijmy od instalacji powyższego oprogramowania.

    rpm –nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release-3.0-1.noarch.rpm

    Dodajemy repozytorium Varnisha, w którym znajdziemy zawsze najnowszą, stabilną wersję.

    yum install varnish

    Przystępujemy do właściwej instalacji.

    vim /etc/varnish/default.vcl

    Edytujemy główny plik konfiguracyjny i ustawiamy w nim adres IP serwera, który będzie robił za tzw. backend.
    backend b1 {
    .host = "77.25.18.34";
    .port = "80";
    .first_byte_timeout = 180s;
    .connect_timeout = 45s;
    }

    Wpis “.connect_timeout = 45s;” wskazuje czas po którym “wyskoczy” timeout przy łączeniu Varnisha z serwerem macierzystym (backendem). Połączenie zostanie wtedy zamknięte, ale komunikat błędu 503 użytkownik dostanie po kolejnych 180s (first_byte_timeout), czyli w sumie po 225s.
    sub vcl_recv {
    if (req.url ~ "\.(gif|jpg|swf|css)$") {
    unset req.http.cookie;
    unset req.http.authenticate;
    set req.backend = b1;
    }
    }

    Kolejnym istotnym elementem omawianego pliku konfiguracyjnego jest określenie jakie pliki mają być umieszczane w cache. W omawianym przykładzie są to pliki z rozszerzeniem gif, jpg, swf oraz css.

    Na serwerze na którym stawiamy Varnisha na porcie 80, należy pamiętać o uprzednim wyłączeniu innych serwerów www działających na tym porcie. Oczywiście można ustawić inny port.

    service varnish start

    Uruchamiamy deamona varnisha. Aby rozłożyć nieco ruch na naszej stronie, możemy dopisać jako rekord A do naszej domeny drugi adres IP (Varnisha). Dzięki temu uzyskamy efekt round robin, czyli zapytania będą szły losowo na nasz macierzysty serwer www i cache.

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony