Varnish Cache Server

Varnish Cache Server

Varnish Cache Server

Eine Komplexe Webseite mit einer hohen Anzahl von Besuchern ist der Tod für jede Hardware. Bei jedem Aufruf müssen Web und Datenbank Server viele Daten aufbereiten und zusammenstellen. Das Ergebnis dieses „Aufwands“ ist Simpler HTML-CODE und diese wird dann als HTML Seite bereitgestellt. Um eine Webseite zu beschleunigen kann man mehr und mehr Blech oder VM´s aufbauen. Eine Verteilung der Anfragen per LoadBalancer auf die Maschinen konfigurieren und noch einen MySQL Cluster aufbauen.  Aber meistens liegt es nicht an der Hardware oder der Struktur der Webseite.

Wie ein Redner auf dem Akamai IT-Entscheiderforum gesagt hat:

Für eine schnelle Webseite gibt es nur drei regeln

  1. Caching
  2. Caching
  3. Caching

Der Varnish Cache Server / Dienst macht genau einen dieser Caching schritte.

Varnish – eigentlich hört es sich eher nach einem Reinigungsmittel als nach schneller Cache-Software an. So falsch ist der Eindruck auch gar nicht, denn Varnish bedeutet übersetzt “Lack” und den verleiht er auch der Webanwendung. Die Entwickler sprechen von einer 300-fachen bis maximal 1000-fachen Beschleunigung. Dabei konzentriert sich die Anwendung im Gegensatz zu vielen anderen Cache-Servern auf HTTP, was wiederum der Nutzer deutlich merkt. Dabei ist der Einstieg absolut einfach.

Voraussetzung für die Nutzung von Varnish ist ein Webserver mit Linux, was wohl Standard sein dürfte. Root-Rechte sind nur zur Installation notwendig. Varnish hält den Cache aus Gründen der Schnelligkeit im RAM, weshalb davon ebenfalls ausreichend verfügbar sein sollte. Ein absolutes Minimum gibt es zwar nicht – aber 2 Gigabyte schaden mit ein bisschen Luft nach oben auch bei einem kleineren Projekt nicht.

Installation unter Debian

zur Installation unter Debian wheezy braucht es nicht viel. Hier gib es derzeit die Version 3.0.2

[stextbox id=“bash“]apt-get install varnish[/stextbox]

Nach der Installation lauscht der Varnish Cache Server auf dem Port 6081 was für das direkte Cachen einer Webseite nun nicht so optimal ist.

Dazu editieren wir die Datei /etc/default/varnish

[stextbox id=“bash“]nano /etc/default/varnish[/stextbox]

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

Jetzt würde Varnish nach einem Neustart auf Port 80 lauschen. Allerdings sitzt hier noch der Apache drauf.

Als nächstes legen wir fest wohin der Varnish seine anfragen weiterleiten soll, bzw. woher er seine Daten bekommt die er Cachen soll.

Dazu bearbeiten wir die /etc/varnish/default.vcl und stellen den Host und den Port ein.
Es kann ein interner Webserver angesprochen werden oder auch externe Webserver können entlastet werden.

[stextbox id=“bash“]nano /etc/varnish/default.vcl[/stextbox]

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

Als nächstes müssen wir noch unseren Apache Webserver umstellen damit er nun auf Port 8080 seine Arbeit verrichtet.

Dazu editieren wir die /etc/apache2/ports.conf und stellen den von 80 auf 8080 um.
[stextbox id=“bash“]nano /etc/apache2/ports.conf[/stextbox]

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

Falls schon vHost konfiguriert wurden müssen diese natürlich auch umgestellt werden.
In den vHosts Konfiguration Files muss der VirtualHost angepasst werden.

VirtualHost 127.0.0.1:8080

Der Rest kann so bleiben wie er ist.

So weit so gut jetzt müssen nur beide Dienste neu gestartet werden und man hat seinen Webserver um Caching erweitert.

[stextbox id=“bash“]service apache2 stop
service varnish restart
service apache2 start[/stextbox]

Weitere Dokumentation und Punktgenaue Einstellungen kann man auf der Projekt Seite finden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*