Drupal ist darauf ausgelegt, hohem Traffic standzuhalten, aber selbst Drupal kann versagen, wenn die Anzahl auf Hunderttausende steigt. Erfahren Sie, wie Sie Varnish mit Drupal konfigurieren.
Hoher Traffic kann zu einer erschöpfenden Datenübertragung vom Server zum Computer führen, was den Server letztendlich verschleißen kann. Dieser umfangreiche Prozess erschwert es dem Server, sich an die wachsende Anzahl von Besuchern anzupassen, die die Website in Echtzeit besuchen.
Was wäre, wenn Ihre Website zu diesem Zeitpunkt nicht mehr lädt, nachdem sie den Höhepunkt ihrer Leistungsfähigkeit erreicht hat, da jeder Besucher eine erhebliche Menge an Aufmerksamkeit benötigt?
Falls Ihre Website nicht darauf vorbereitet ist, die Besucherzahlen zu bewältigen, und Sie sich nur auf die "gute Architektur" von Drupal verlassen, riskieren Sie Ihren Ruf, da Ihre Besucher darauf warten, dass Ihre Website geladen wird.
Selbst der beste Samurai braucht eine Rüstung
Während es unzählige Artikel gibt, die Drupal für seine Leistung loben, wird der Vergleich selten mit einer Website mit enormem Traffic angestellt. Wir alle wissen, dass Drupal darauf ausgelegt ist, hohem Traffic standzuhalten, aber selbst Drupal kann Sie im Stich lassen, wenn die Anzahl ohne Varnish auf Hunderttausende steigt.
Es gibt zahlreiche Ansätze, um die Leistungsprobleme zu beheben, aber nichts übertrifft die Erfahrung nach der Konfiguration von Varnish mit Ihrem Server.
Varnish unterstützt die Skalierung durch zusätzliche Software, die hilft, den Engpass zu beseitigen. Informationen und Seiten können darin gespeichert werden. Wenn eine Anfrage für die gespeicherten Informationen gestellt wird, wird die Anfrage von Varnish und nicht vom Browser bearbeitet.
Einfach ausgedrückt: Die Informationen werden in Varnish zwischengespeichert, um die Antwortzeit und die Last auf dem Server zu verringern.
Varnish-Cache verspricht, die Website-Performance um das 300- bis 1000-fache zu steigern
Richten wir Varnish-Cache mit einer Drupal 8-Website ein, um ihre Leistung zu verbessern. Erforderliche Voraussetzungen:
- Ubuntu 16.04
- LEMP-Stack für den Betrieb von Drupal 8
Varnish konfigurieren
- Installation von Varnish Cache.
Geben Sie die Befehle zur Installation von Varnish ein.
sudo apt-get update sudo apt-get install varnish
- Die Konfiguration von Varnish Cache.
vim /etc/default/varnish
Hier müssen Sie den folgenden Code-Schnipsel ersetzen
DAEMON _OPTS="-a :6081\
-T localhost:6082
-f /etc/varnish/default.vcl
-s malloc,256m"
-S /etc/varnish/secret
Mit
DAEMON _OPTS="-a :80\
-T localhost:6082
-f /etc/varnish/default.vcl
-s malloc,512m"
-S /etc/varnish/secret
Hier habe ich Varnish so eingestellt, dass es auf Port 80 hört und den zugewiesenen Speicher von 256 MB auf 512 MB erhöht.
Kopieren Sie die Standard-varnish.service-Datei in den Systemordner, um Varnish als Dienst zu verwenden.
cp /lib/systemd/system/varnish.service /etc/systemd/system/
Auch hier müssen Sie den Standardport auf 80 ändern und speichern. Sie können dies tun, indem Sie Folgendes ersetzen:
ExecStart=/usr/sbin/varnishd -a :8080
-T localhost:6082 -f /etc/varnish/default.vcl
-S /etc/varnish/secret -s malloc,256m
Mit
ExecStart=/usr/sbin/varnishd -a :80
-T localhost:6082 -f /etc/varnish/default.vcl
-S /etc/varnish/secret -s malloc,256m
Speichern Sie die Datei und beginnen Sie mit der Bearbeitung von /etc/varnish/default.vcl.
vim /etc/varnish/default.vcl
Falls Sie mit der VCL-Datei [Varnish Configuration Language] nicht vertraut sind, ermöglicht sie es Entwicklern, Regeln festzulegen, die definieren, welche Daten zwischengespeichert werden sollen oder von wo aus zwischengespeichert werden soll [anonyme Benutzer oder authentifizierte Benutzer].
Entwickler können Einschränkungen für einige der Seiten hinzufügen, Cookies definieren, um Daten für einen authentifizierten Benutzer zwischenzuspeichern, und Backend-Pooling konfigurieren. Dies dient als Schnittstelle zur Interaktion mit Varnish.
Wir werden uns nur auf wichtige Änderungen konzentrieren, um dem Varnish einen Backend-Server bereitzustellen.
Legen Sie Ihren Backend-Server wie folgt fest:
backend default {
.host = “127.0.0.1”;
.port = “8080”;
}
Dies stellt sicher, dass Varnish auf Port 80 und unser Webserver auf Port 8080 läuft. Sobald alles gespeichert wurde, müssen Sie den Varnish-Dienst neu starten und die Daemon-Tools erneut laden.
Dies kann auf folgende Weise geschehen.
/etc/init.d/varnish stop
systemctl daemon-reload
/etc/init.d/varnish start
Sobald Sie Varnish eingerichtet und neu gestartet haben, müssen Sie den Standardport von Nginx von 80 auf 8080 ändern.
Gehen Sie zu
/etc/nginx/sites-enabled/{Ihre Website-Konfiguration} und bearbeiten Sie den Listen-Parameter im Server-Block.
listen 8080;
listen [::]:8080;
Starten Sie den Nginx-Server neu:
Service nginx restart
Wenn Sie Ihre Website jetzt über einen Browser öffnen, werden die Inhalte tatsächlich von Varnish und nicht von Nginx bereitgestellt. Um dies zu überprüfen, können Sie:
Installieren Sie Wappalyzer und prüfen Sie, ob Varnish in den Caching-Tools erkannt wurde.

Überprüfen Sie die Header der Website und suchen Sie nach Via- oder Varnish-Tag-Werten.
Sie werden möglicherweise feststellen, dass das Varnish-Tag beim ersten Mal den Status "MISS" anzeigt und sich der Status in "HIT" und Via: Varnish ändert, wenn Sie Ihre Website erneut aufrufen.
Dies geschieht, weil beim ersten Aufruf keine zwischengespeicherten Inhalte vorhanden sind und die Inhalte vom Webserver bereitgestellt wurden.
Varnish mit Drupal
Für die optimale Nutzung von Varnish mit Drupal 8 ist es am besten, Cache-Tags mit Hilfe von Varnish bereitzustellen. Obwohl es die Möglichkeit hat, jede Information zwischenzuspeichern, funktioniert auch das Zwischenspeichern der Tags aus dem Drupal-Cache. Befolgen Sie die folgenden Anweisungen:
- Laden Sie das Purge-Modul für Drupal 8 herunter und installieren Sie es.
- Laden Sie das Generic HTTP Purge-Modul für Drupal 8 herunter und installieren Sie es.
Gemäß der offiziellen Dokumentation "Das Purge-Modul erleichtert das Bereinigen externer Caching-Systeme, Reverse-Proxys und CDNs, wenn sich Inhalte tatsächlich ändern. Dies ermöglicht es externen Caching-Schichten, unveränderte Inhalte unendlich lange zwischengespeichert zu halten, wodurch die Inhaltsbereitstellung effizienter, widerstandsfähiger und besser gegen Traffic-Spitzen geschützt wird."
Befolgen Sie die Schritte zur Installation und Konfiguration der oben genannten Module.
- Installieren Sie das Purge-Modul zusammen mit Submodulen wie Purge Drush, Purge Tokens, Purge UI, Cron Processor, Late Runtime Processor und Core Tags Queuer. Aktivieren Sie außerdem Generic HTTP Purger und Generic HTTP Tags Header.
- Gehen Sie zu Admin -> Konfiguration -> Entwicklung -> Leistung -> Purge. (admin/config/development/performance/purge).
- Klicken Sie auf Purger hinzufügen und wählen Sie den Typ "HTTP Purger" aus.
- Der Purger wird einem zufälligen Hash-Code hinzugefügt. Wählen Sie über die Quickinfo-Schaltfläche "Konfigurieren" aus.
- Geben Sie dem Purger einen Namen, z. B. "Varnish Cache".
- Geben Sie auf der Registerkarte "Anfrage" die Konfiguration für Varnish an, d. h. IP-Adresse, Port und Anfragemethode. Ich führe es auf demselben Server aus, daher habe ich "localhost" und Port 80 ausgewählt. Die Anfragemethode ist "BAN".
- Gehen Sie nun zur Registerkarte "Header" und fügen Sie den folgenden Header hinzu (Header und Wert)
Purge-Cache-Tags : [invalidation:expression
- Sobald Sie alle Einstellungen im Zusammenhang mit Purge und Generic Purge Header vorgenommen haben, müssen Sie nun andere Leistungseinstellungen wie CSS- und JS-Aggregation und "Maximale Lebensdauer des Seiten-Cache" unter admin/config/development/performance festlegen. Leeren Sie danach Ihren Cache.
Die wichtigste Konfiguration im Zusammenhang mit Varnish, d. h. default.vcl, kann je nach Ihren Anforderungen auf verschiedene Weise geändert werden. Lesen Sie die offizielle Dokumentation, um sie gemäß den Caching-Anforderungen zu ändern.
Hier werden wir nicht aufhören, nachdem wir Varnish mit unserer Drupal 8-Website eingerichtet haben, sondern wir werden es auch testen, um zu beurteilen, ob es unsere Erwartungen erfüllt.
Ich habe etwa 50.000 Nodes in der Drupal 8-Website hinzugefügt. Habe Siege auf dem Server eingerichtet und Tests mit den folgenden Parametern durchgeführt.
Anzahl der gleichzeitigen Benutzer: 250.
Testzeit: 60.
URL: Beliebige URL zufällig aufrufen.
Es gab nicht viele Inhalte, die von Varnish bereitgestellt wurden, da der Cache vor dem Testen geleert wurde.
Ich habe einen weiteren Test auf derselben Website durchgeführt, ohne den Cache zu leeren, um Varnish zu testen.
Es gibt eine deutliche Zunahme der Transaktionen und der Transaktionsrate. Die Reaktionszeit hat sich ebenfalls deutlich verringert.
Abonnieren
Verwandte Blogs
Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…
Erklärbare KI-Tools: SHAPs Stärke in der KI

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…
KI-Chatbots: Präzision und Persönlichkeit in Perfektion

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…