Tutorials - Varnish Caching-Proxy
Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk
Varnish Caching-Proxy
Diese Seite wurde 11439 mal aufgerufen.
Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.
Editieren Versionen Linkpartnerschaft Bottom Printversion
Keywords: varnish howto tutorials small fast caching reverse proxy
Inhaltsverzeichnis
Vor Web-Application-Server und gut besuchten Seiten steht meist/immer ein Reverse-Proxy. Dieser dient dazu, unterschiedliche URL und Inhalte an verschiedene Server zu verteilen, URL umzuschreiben und Daten zu Cachen.
Oftmals kommt hierbei noch Apache+Squid zum Einsatz, doch beide sind für diese Aufgabe total Überladen und nutzen die Funktionen moderner Linux-Kernel nicht vollständig aus.
Wie Varnish dies angeht findet sich in den Architect Notes.
Da mit Swap & RAM, Disk-Cache und Caching-Prioritäten ein sehr dynamisches Gefüge entsteht, dass sich nicht mehr kontrolliert optimieren lässt, verschwendet beispielsweise Squid unnötig viel Performance. Auch das Ablegen einzelner Inhalte in getrennten Dateien führt zu unnötigen Leistungsverlusten durch das Dateisystem als Zwischenschicht.
Varnish hingegen legt ein Shared-Memory-File an und überlässt es dem Kernel, welche Inhalte im RAM und welche auf der Festplatte vorgehalten werden. Zusätzlich kompiliert Varnish die Konfiguration zu einem C-Code und lädt sie dynamisch wie eine Bibliothek direkt nach.
Varnish ist ein Caching-Reverse-Proxy, dh. er speichert statische Inhalte EINER Webapplikation und beantwortet somit ein großteil der Anfragen von Clients um die Applikation-Server zu entlasten. Jedoch hören da seine Möglichkeiten auch schon wieder auf, weshalb man vor ihm einen ersten Reverse-Proxy wie Nginx (siehe Tutorial) oder Apache einsetzen sollte.
Da die Varnish-Debian-Pakete veraltet sind, hilft nur Selberbauen.
Code:
cd /usr/local/src
wget http://dfn.dl.sourceforge.net/sourceforge/varnish/varnish-1.1.1.tar.gz
tar xvfz varnish-1.1.1.tar.gz
cd varnish-1.1.1
./configure --prefix=/usr/local \
--sysconfdir=/etc/varnish \
--localstatedir=/var/lib/ \
--mandir=/usr/share/man
make && make install
Ein einfaches Beispiel für zwei Seiten könnte so aussehen:
/etc/varnish/vcl.conf:
backend online_tutorials {
set backend.host = "127.0.0.1";
set backend.port = "8010";
}
backend meine_zweite_seite {
set backend.host = "appserver.meinedomain.tld";
set backend.port = "8080";
}
sub vcl_recv {
if (req.http.host ~ "^www.online-tutorials.net$") {
set req.backend = online_tutorials;
} elseif (req.http.host ~ "^meine.zweite-seite.tld$") {
set req.backend = meine_zweite_seite;
} else {
error 404 "Unknown virtual host";
}
if (req.request == "GET" && req.http.cookie) {
lookup;
}
}
Varnish wird standardmäßig über Port 6081 angesprochen. Per Telnet ist es möglich auf Port 6082 sich mit der Admin-Konsole zu verbinden. Ein help listet die verfügbaren Kommandos.
url.purge *.css würde beispielsweise sämtliche CSS-Dateien verwerfen (wichtig nach einem Update der Seite). Über Ctrl+Alt-GR+9 -> quit ist es möglich, die Adminkonsole wieder zu verlassen.
Weitere Programme wie varnishhist und varnishlog helfen beim Debuggen.
Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?
Editieren Versionen Linkpartnerschaft Top Printversion
Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden
Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk/Varnish Caching-Proxy