Was ist Varnish?

Varnish ist ein plattformunabhängiger Caching-HTTP-Reverse-Proxy, der Webplattformen beschleunigt.

Schauen wir uns das mal genauer an:

Reverse 4

Plattformunabhängig

Varnish ist softwarebasiert und läuft auf Standardhardware, virtuellen Maschinen, in Containern, in der Cloud und vor Ort.

Reverse 3

Caching

Varnish beschleunigt die HTTP-Bereitstellung, indem es Inhalte zwischenspeichert und an mehrere Clients weiterleitet.

Reverse 2

HTTP

Varnish verarbeitet HTTP-Anfragen und -Antworten und kann so die Bereitstellung von Inhalten, die das HTTP-Protokoll verwenden, beschleunigen.

Reverse

Reverse-Proxy

Varnish sitzt zwischen Clients und HTTP-Servern (dem Ursprung oder Backend) und fungiert als Proxy.

Wie Varnish funktioniert

Varnish nutzt HTTP-Caching-Mechanismen, um schnell zwischengespeicherte Versionen von Webseiten, Videosegmenten, APIs und allen anderen Inhalten, die über HTTP übertragen werden, bereitzustellen. Wenn ein Benutzer einen Inhalt anfordert, speichert Varnish eine Kopie in seinem Speicher und möglicherweise auf der Festplatte. Wenn ein anderer Benutzer denselben Inhalt anfordert, liefert Varnish die gespeicherte Kopie blitzschnell und überspringt den ressourcenintensiven Prozess der Generierung und Bereitstellung vom Ursprung. Dadurch wird die Serverlast verringert und die Nutzer erhalten ein schnelleres Erlebnis.

Enterprise Features 4

Varnish Configuration Language

Das Besondere an Varnish ist, dass das Anfragebearbeitungs- und Caching-Verhalten mit einer eigens entwickelten Sprache erheblich modifiziert und erweitert werden kann: Varnish Configuration Language (VCL) Mit einem Stil, der sich an C, C++ und Java anlehnt, bietet es Unterprogramme, If-Else-Anweisungen und Funktionsaufrufe. Der VCL-Code klinkt sich in den endlichen Zustandsautomaten von Varnish ein und gibt Ihnen die Kontrolle über jede Phase des Anforderungsbearbeitungsprozesses. Da VCL in C transpiliert und zu Maschinencode kompiliert wird, anstatt zur Laufzeit interpretiert zu werden, ist sie sehr, sehr schnell.

Erfahren Sie mehr

Configuration Language

Festlegen von Caching-Richtlinien

Die Flexibilität der VCL ist beispiellos und bietet volle Kontrolle über Caching-Richtlinien, um personalisierte Caching-Erlebnisse, die Integration mit anderen Systemen und Edge Computing zu ermöglichen. VCL-Funktionen umfassen:

  • Anfragebearbeitung und Routing
  • Anfrage- und Antwortmanipulation
  • Lastausgleich und Zustandsüberwachung
  • Cache-Kontrollen
  • Anfragebereinigung
  • Edge-side Includes (ESI)
  • Cookieverarbeitung
  • Authentifizierung
  • Cache-Umgehung
  • Einstellung der Cache-Lebensdauer
  • Kopfzeilenmanipulation
  • Lastausgleich.
  • Cache-Invalidierung
Defining Caching Policy

Varnish-Module (VMODs)

Eine robuste Bibliothek mit zusätzlichen Modulen erweitert das Standardverhalten von Varnish. Diese Varnish-Module, oder VMODs, fügen eine Vielzahl von Funktionen hinzu und stellen eine Reihe von Funktionen zur Verfügung, die direkt von der VCL aus aufgerufen werden können. Beispiele für VMODs sind:

  • Erweiterte Bereinigung / Invalidierung.
  • Inhaltsumwandlung
  • Inhalts- / Bildkomprimierung
  • Verschlüsselung
  • Geräteerkennung
  • Dateisystemzugriff
  • JSON-Parsing
  • JWT
  • Speicherzugriff / MSE
  • TLS-Informationen / TLS im Prozess
  • Drosselung / Ratenbegrenzung
  • Prometheus-Ausgabe

Die vollständige Liste finden Sie hier

Plugable Modules

Funktionen von Varnish Enterprise

Varnish Enterprise bietet einen größeren Funktionsumfang als die Open-Source-Software Varnish Cache. Zu den wichtigsten Funktionen von Varnish Enterprise gehören:

  • Massive Storage Engine (MSE). Zwischenspeicherung auf der Festplatte mit direkter E/A, die die Cache-Kapazität kostengünstig erhöht und die Cache-Persistenz ermöglicht
  • Varnish High Availability (VHA). Replizieren von zwischengespeicherten Objekten über mehrere Varnish-Server
  • HTTPS und integrierte Client- und Backend-TLS/SSL-Terminierung
  • Browser-basierte Verwaltungs- und Überwachungskonsole mit dem Namen Varnish Controller
  • Zusammenfassen von Anfragen. Kombiniert mehrere Anfragen für dasselbe Objekt in einer einzigen Backend-Anfrage
  • Protokollierung. Vollständige Protokollierung bietet eine Flut von Informationen, mit Filtermechanismen und Ratenbegrenzungen zur Reduzierung der pro Zeitintervall gespeicherten Protokolleinträge
  • Statistik. Umfangreicher Satz von Echtzeitzählern, mit Statistiken pro Traffic Slice und direktem Export im JSON- oder Prometheus-Format
  • Grace Mode. Stellen Sie leicht veraltete Inhalte an Clients bereit, während Sie asynchrone Revalidierungsanfragen senden, um die neueste Version abzurufen. Auch „Stale-While-Revalidate“ genannt
  • Erweiterte Cache-Invalidierung.
Enterprise Features

Varnish-Architektur

Effiziente Software ermöglicht Skalierung, weshalb der Kern der Caching-Engine in Varnish schlank gehalten ist und nur die für den Betrieb notwendigen Funktionen enthält. Varnish hat außerdem viele Threads, so dass jede Client-Verbindung von einem separaten Worker-Thread bearbeitet wird. Ein weiteres Ziel ist es, die Ressourcennutzung durch optimale Speicherzuweisung so effizient wie möglich zu gestalten, während der hochoptimierte schnelle Pfad Kontextwechsel, Sperren und Speicherzuweisungen/-freigaben minimiert. Varnish Enterprise unterstützt auch Non-Uniform Memory Access (NUMA)-APIs, die notwendig sind, um die höchste Leistung von Servern mit mehr als einem NUMA-Knoten zu erreichen.

Architecture

Request a free trial