Varnish Web Beschleuniger
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird. Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar. |
---|
Varnish ist ein Web Beschleuniger (Reverse Proxy), welcher Entlastung für die eigentlichen Webserver (das Backend) schafft. Er wurde im Gegensatz zu herkömmlichen Proxies (z.B. Squid) von Grund auf nur für diesen Einsatz entwickelt.
Die Webseite des Projekts findet sich hier: http://www.varnish-cache.org
Installation
Varnish ist Teil von Debian (Wheezy: Version 3.0.2) sowie Ubuntu (Trusty: Version 3.0.5). Mittlerweile gibt es Varnish 4.x, welcher im Moment in keiner stabilen Debian/Ubuntu Version enthalten ist.
Für die Installtion der 3.x Version aus dem Debian/Ubuntu Repository gehen Sie wie folgt vor:
apt-get install varnish
Wenn Sie eine neuere Version (4.x) für Debian/Ubuntu wünschen, können Sie auch direkt das Repository von varnish-cache.org einbinden. Die Anleitung dafür findet sich hier:
Für RedHat Enterprise Linux (RHEL/CentOS) gibt es Pakete im Extra Packages for Enterprise Linux (EPEL) Repository unter http://fedoraproject.org/wiki/EPEL. Für RHEL 7 ist eine Varnish 4.x Version im EPEL Repository verfügbar. http://dl.fedoraproject.org/pub/epel/7/x86_64/repoview/varnish.html
Mehr Details zur Installation finden sich hier:
- für Version 3.x: http://www.varnish-cache.org/docs/3.0/installation/index.html
- für Version 4.x hier: http://www.varnish-cache.org/docs/4.0/installation/index.html
Konfiguration
Es gibt eine eigene Konfigurationssprache namens VCL (Varnish Configuration Language). Mit dieser wird der Varnish Cache konfiguriert, danach in Binärcode übersetzt und für die ankommenden Web Requests ausgeführt. Normalerweise findet man die Standard Konfiguration in /etc/varnish/default.vcl
. Falls die zu beschleunigende Webseite Cookies verwendet, muss auf alle Fälle die Standard Konfiguration von Varnish angepasst werden. Erst dadurch werden überhaupt Daten von Varnish gecached. Für das weitergehende Verständnis von VCL empfielt sich folgendes Dokument zu lesen: https://www.varnish-cache.org/docs/3.0/tutorial/vcl.html
Auch wenn eine Seite hauptsächlich dynamischen Content beinhaltet, können fast immer Bild-, Stylesheet- und Javascript-Dateien gecached werden. Außerdem können auch dynamischen Seiten gecached werden. Dies funktioniert mit Edge Side Includes (ESI). Dadurch wird durch spezielle "<esi:include ..."> Tags festgelegt, welche Inhalte einer Webseite sich dynamisch verändern können und wie lange diese gecached werden sollen.
Der Varnish Daemon selbst wird meist über eine eigene distributionsspezifische Datei angepasst.
- Debian/Ubuntu:
/etc/default/varnish
- RHEL/CentOS:
/etc/sysconfig/varnish
Darin wird unter anderem festgelegt auf welcher IP und Port der Varnish lauschen soll und ob flüchtiger Speicher (Typ "malloc") oder persistenter Speicher (Typ "file") verwendet werden soll.
Sehr hilfreich bei der Einführung eines Reverse Proxies kann auch das Apache Modul rpaf sein. Details dazu finden Sie im Artikel Apache mod_rpaf.
Als Einstieg bietet sich das Varnish Tutorial an: http://www.varnish-cache.org/docs/3.0/tutorial/index.html
Tiefergehende Details findet man im Wiki: http://www.varnish-cache.org/wiki/
Statistik
Varnish beinhaltet einige Statistik Tools.
Mittels varnishhist lässt sich grafisch anzeigen, wie viele Requests Cache Hits darstellen und wieviele ans Backend weitergereicht werden. Außerdem sieht man auf der x-Achse die jeweiligen Antwortzeiten in Sekunden (Bsp: 1e-1 -> 0,37 Sekunden, 1e-5 -> 0,0067 Sekunden)
Mittels varnishstat lassen sich detailierte Zugriffsstatistiken anzeigen. Interessant vor allem die Cache-Hit Rate.
Reload der Varnish Konfiguration
Um die Varnish Konfiguration neu zu laden ist unter Debian ein Skript enthalten.
/usr/share/varnish/reload-vcl
Weitere Informationen
- http://www.varnish-cache.org
- http://www.varnish-cache.org/wiki/
- https://www.varnish-software.com/static/book/
- http://www.linux-magazin.de/Heft-Abo/Ausgaben/2010/01/Gas-geben/%28offset%29/2
- http://deserialized.com/caching/reverse-proxy-performance-varnish-vs-squid-part-1/
- http://deserialized.com/caching/reverse-proxy-performance-varnish-vs-squid-part-2/
- http://kristianlyng.wordpress.com/2009/12/08/varnishstat-for-dummies/
Autor: Christoph Mitasch Christoph Mitasch arbeitet in der Abteilung Web Operations & Knowledge Transfer bei Thomas-Krenn. Er ist für die Betreuung und Weiterentwicklung der Webshop Infrastruktur zuständig. Seit einem Studienprojekt zum Thema Hochverfügbarkeit und Daten Replikation unter Linux beschäftigt er sich intensiv mit diesem Themenbereich. Nach einem Praktikum bei IBM Linz schloss er sein Diplomstudium „Computer- und Mediensicherheit“ an der FH Hagenberg ab. Er wohnt in der Nähe von Linz und ist neben der Arbeit ein begeisterter Marathon-Läufer und Jongleur, wo er mehrere Weltrekorde in der Team-Jonglage hält.
|