Zum Inhalt springen
EuroVPSEuroVPS

Varnish Cache erklärt

Wenn Sie Varnish-Einsteiger sind und mehr über dieses unglaublich schnelle Caching-Werkzeug erfahren möchten, ist dieser Beitrag für Sie. Wir sprechen darüber, was Varnish ist, wie es arbeitet und für wen es sich eignet.

Von Robert Hughes

Aktualisiert am 22. Oktober 20265 Min. Lesezeit
Titelbild: Varnish Cache

Varnish ist zum Synonym für leistungsstarke HTTP-Beschleunigung geworden. Varnish Cache ist ein Open-Source-Beschleuniger in Form eines Reverse HTTP Proxy, der die Last auf Ihrem Webserver hervorragend senkt. Varnish wird vor den Webserver gesetzt und arbeitet als Proxy, der eine Brücke zwischen Browser und Server schlägt.

Poul-Henning Kamp, der Schöpfer von Varnish
Poul-Henning Kamp (der Schöpfer von Varnish)

Das Varnish-Projekt war die Idee des dänischen Technologiearchitekten Poul-Henning Kamp. Kamp, ein bekannter FreeBSD-Berater, war der leitende Entwickler von Varnish.

Das Varnish-Projekt wurde vom Online-Ableger der norwegischen Zeitung Verdens Gang gestartet. Die Software war aber so erfolgreich, dass sie schließlich in ein eigenes Unternehmen ausgegliedert wurde.

Keine Sorge: Sie ist weiterhin kostenlos und vollständig Open Source, verfügbar unter der BSD-Lizenz mit zwei Klauseln. Wenn Sie kommerziellen Support wünschen, bekommen Sie ihn bei Varnish Software.

Heute liegen Support, Verwaltung und Weiterentwicklung von Varnish unter dem Dach von Varnish Software.

Wie arbeitet Varnish?

Stellen Sie sich folgende Szene vor. Sie betreten ein gut besuchtes Café und bestellen den Filterkaffee des Hauses. Die Person am Tresen prüft zuerst, ob eine frische Kanne zum Einschenken bereitsteht.

Wenn ja, bekommen Sie Ihre Tasse sofort. Wenn nicht, geht die Bestellung an den Barista, der eine neue Kanne aufbrüht. Varnish übernimmt die Aufgabe der Person am Tresen.

Varnish sitzt vor Ihrem Webserver. Fordert ein Besucher eine Webseite zum ersten Mal an, nimmt Varnish die Anfrage entgegen und reicht sie an den Backend-Server weiter. Der Backend-Server verarbeitet die Anfrage und schickt die Antwort an den Browser zurück.

Varnish «cacht» unterdessen den gerenderten Inhalt und legt ihn im extrem schnellen RAM ab.

Jede weitere Anfrage nach derselben Webseite wird direkt aus der gecachten Fassung bedient (aus dem RAM!), ohne den Webserver oder die Datenbank zu behelligen.

Wer setzt Varnish ein?

Viele Nachrichten- und Content-Websites mit hohem Verkehrsaufkommen setzen Varnish ein.

Varnish bringt große Leistungsvorteile für inhaltsreiche Websites mit viel Verkehr. Es kann sowohl statische als auch dynamische Inhalte cachen.

Es gibt das verbreitete Missverständnis, Varnish sei nur für statische Inhalte gedacht. Mit ein wenig Feinarbeit an der .VCL-Konfiguration funktioniert es aber auch für dynamische Websites und mobile Anwendungen hervorragend.

Warum ist Varnish so schnell?

Wenn Sie Tausende gleichzeitiger Anfragen pro Sekunde bedienen möchten, ohne Ihren Webserver zu überlasten, ist Varnish einer der besten HTTP-Beschleuniger, die es gibt.

image: src /blog/wp-content/uploads/2012/10/varnish-diagram.jpg (unchanged); alt: Diagramm: Varnish vor dem Webserver

In der Varnish-Konfiguration legen Sie fest, ob der Cache auf der Festplatte oder im RAM gespeichert werden soll.

Für das sofortige Gefühl von «Klick, und es ist da» sollte dieser Cache ausschließlich in Ihrem RAM liegen.

Mit einer korrekt konfigurierten Varnish-Installation sehen Sie deutlich kürzere Antwortzeiten und einen erheblichen Rückgang der Ressourcennutzung auf dem Server.

Ist Varnish schwer zu konfigurieren?

RHEL und seine Ableger liefern Varnish als Paket mit.

Varnish kommt mit einer Grundkonfiguration, die sich unverändert nutzen lässt, um HTTP-Beschleunigung mit minimalem Aufwand in Betrieb zu nehmen. Varnish selbst terminiert kein HTTPS. Auf einer modernen Website sitzt es daher hinter einem TLS-Terminator wie HAProxy oder nginx.

Varnish stellt Ihnen eine Varnish Configuration Language (VCL)-Datei bereit, in der Sie an den Einstellungen arbeiten, um die Leistung fein abzustimmen. Die VCL-Datei sagt Varnish genau, wie es den Caching-Prozess handhaben soll.

Wann und was gecacht wird, wann nicht, und wie lange der gecachte Inhalt im Speicher bleibt.

Wer .VCL beherrscht, bekommt Superkräfte: Sie können nahezu jeden Aspekt einer HTTP-Anfrage und -Antwort verändern.

Wann Sie Varnish einsetzen sollten

  1. Wenn Sie eine inhaltsreiche Website mit häufigen Verkehrsspitzen haben
  2. Varnish ist hervorragend für Server mit hoher Datenbanklast. Indem die häufigsten Web-Anfragen gecacht werden, bekommt Ihr MySQL-Server etwas Ruhe.
  3. Wenn Sie die Aktivität Ihrer Festplatte senken und damit ihre Lebensdauer verlängern möchten.
  4. Wenn ein Webserver und eine Datenbank Tausende gleichzeitiger Besucher bedienen müssen.

Wann sollten Sie Varnish nicht einsetzen?

Es gibt viele einfachere Wege zu großen Leistungsgewinnen, etwa das Micro-Caching von NGiNX, die Sie ausprobieren können, bevor Sie zu Varnish greifen.

Für kleine Websites mit weniger als 1.000 Seitenaufrufen pro Tag kommen Sie wahrscheinlich mit einem optimierten LAMP-Stack oder NGiNX mit PHP-FPM bestens zurecht.

Wegen der Komplexität, die .VCL-Datei an Ihre konkreten Anforderungen anzupassen, lohnt sich der Aufwand für Varnish manchmal schlicht nicht. Varnish mit dynamischen Inhalten sauber zusammenarbeiten zu lassen, ist knifflig. Sicher, Sie können ESI-«Hole-Punching» nutzen, um nutzerspezifische Inhalte auszuliefern, aber ist das wirklich nötig?

Erst die niedrig hängenden Früchte

Vor Varnish kommen die günstigeren Maßnahmen: Bildoptimierung, minimiertes CSS und JavaScript, MySQL-Tuning.

Verwandter Artikel: 10 Gründe, warum Ihre Website langsam lädt (und die Lösung)

Fazit

Varnish so aufzusetzen, dass es Inhalte korrekt ausliefert und den Anforderungen Ihres Unternehmens folgt, kann knifflig sein. Die Regeln für den Cache-Ablauf, die Time to Live, das URL-Caching und die Anforderungen an das Object-Caching in Varnish sind sehr komplex. Deshalb sind viele Beratungsfirmen aus dem Bedarf entstanden, «Varnish-Implementierungen» in Kundenumgebungen umzusetzen.

Bei EuroVPS betreiben wir Varnish vor Websites mit hohem Verkehrsaufkommen, und unsere Ingenieure helfen Ihnen gern, die Caching-Ebene für Ihre eigene zu entwerfen.

Aus dem Blog-Archiv von EuroVPS, erstmals veröffentlicht am 17. Oktober 2012.

Alle Notizen aus der Praxis