© filip robert/Shutterstock.com
PHP Magazin
Mit Varnish und dem Vary Header dynamische Inhalte effizient cachen

Varnish und der Vary Header

Das Cachen von Webseiten ist ein Thema, das leider oft zu spät mit in die Konzeption einbezogen wird. Wenn man sich schon im Vorhinein ein paar Gedanken zum Thema macht, kann man auch auf äußerst dynamischen Webseiten ungeahnte Performance erreichen.

Daniel Rotter


Die Erinnerung an die Webseitenerstellung in den alten Zeiten kann ein angenehmes Gefühl auslösen: Man erstellte ein paar HTML-Dateien, dazu noch ein paar Bilder sowie ein Stylesheet, und schob das Ganze per FTP auf einen Server. Fertig war eine Webseite, die sogar noch ziemlich performant war! Doch so einfach das damals auch gewesen sein mag, würde man mit diesen schlussendlich doch sehr bescheidenen Möglichkeiten die Anforderungen heutiger moderner Projekte wohl nicht mehr erfüllen können.

Der Kunde möchte seine Webseite selbst verwalten können, deshalb setzt man heute üblicherweise Content Management Systeme (CMS) ein, die im Hintergrund noch mit einer Datenbank kommunizieren. Der ganze Stack ist jetzt schon um einiges komplizierter und auch langsamer geworden. Mittlerweile sind Webseiten oft schon sehr dynamisch. Es werden die letzten Artikel auf der Startseite dargestellt, der Name des eingeloggten Benutzers wird irgendwo angezeigt, oder man muss gar einen Newsfeed programmieren, der sowieso für jeden Benutzer anders aussieht. Und all das auf Kosten der Performance.

Werkzeuge wie Varnish [1] versprechen hier Abhilfe. Bei Varnish handelt sich um einen Cache für dynamische Webseiten mit viel Inhalt. Anstatt für jeden Request wieder die PHP-Applikation aufzurufen, zeitaufwendige Datenbankzugriffe auszuführen und das Ganze erst mit einer Templatesprache in HTML übersetzen zu lassen, versucht Varnish, sich die Antwort vom Request zu merken und liefert diese im Idealfall direkt aus dem Arbeitsspeicher aus. Das ist natürlich unvergleichbar viel schneller, weshalb es sich wirklich auszahlt, sich mit diesem Thema genauer auseinanderzusetzen.

Caching 101

Abhängig vom Betriebssystem kann man Varnish auf verschiedene Arten installieren und starten. Viele Linux-Distributionen bieten ein Package für Varnish an, wobei meist noch die Version 5.2 verwendet wird, auf die sich auch dieser Artikel bezieht. Nachdem man das Package erstellt hat, kann man Varnish entweder mit einem Service-Manager wie systemd starten oder man benutzt einfach das varnishd-Kommando auf der Kommandozeile.

Varnish setzt auf das HTTP-Protokoll. Das bedeutet, dass man es vor jede Applikation schalten kann, die über HTTP kommuniziert. Unter anderem spielt es keine Rolle, welche Programmiersprache oder welcher Webserver hinter Varnish läuft. Wir nutzen diesen Vorteil aus, indem wir einfach den PHP-internen Webserver nutzen. Der PHP-interne Webserver ist zwar nicht für den Einsatz in Produktionsumgebu...

PHP Magazin
Mit Varnish und dem Vary Header dynamische Inhalte effizient cachen

Varnish und der Vary Header

Das Cachen von Webseiten ist ein Thema, das leider oft zu spät mit in die Konzeption einbezogen wird. Wenn man sich schon im Vorhinein ein paar Gedanken zum Thema macht, kann man auch auf äußerst dynamischen Webseiten ungeahnte Performance erreichen.

Daniel Rotter


Die Erinnerung an die Webseitenerstellung in den alten Zeiten kann ein angenehmes Gefühl auslösen: Man erstellte ein paar HTML-Dateien, dazu noch ein paar Bilder sowie ein Stylesheet, und schob das Ganze per FTP auf einen Server. Fertig war eine Webseite, die sogar noch ziemlich performant war! Doch so einfach das damals auch gewesen sein mag, würde man mit diesen schlussendlich doch sehr bescheidenen Möglichkeiten die Anforderungen heutiger moderner Projekte wohl nicht mehr erfüllen können.

Der Kunde möchte seine Webseite selbst verwalten können, deshalb setzt man heute üblicherweise Content Management Systeme (CMS) ein, die im Hintergrund noch mit einer Datenbank kommunizieren. Der ganze Stack ist jetzt schon um einiges komplizierter und auch langsamer geworden. Mittlerweile sind Webseiten oft schon sehr dynamisch. Es werden die letzten Artikel auf der Startseite dargestellt, der Name des eingeloggten Benutzers wird irgendwo angezeigt, oder man muss gar einen Newsfeed programmieren, der sowieso für jeden Benutzer anders aussieht. Und all das auf Kosten der Performance.

Werkzeuge wie Varnish [1] versprechen hier Abhilfe. Bei Varnish handelt sich um einen Cache für dynamische Webseiten mit viel Inhalt. Anstatt für jeden Request wieder die PHP-Applikation aufzurufen, zeitaufwendige Datenbankzugriffe auszuführen und das Ganze erst mit einer Templatesprache in HTML übersetzen zu lassen, versucht Varnish, sich die Antwort vom Request zu merken und liefert diese im Idealfall direkt aus dem Arbeitsspeicher aus. Das ist natürlich unvergleichbar viel schneller, weshalb es sich wirklich auszahlt, sich mit diesem Thema genauer auseinanderzusetzen.

Caching 101

Abhängig vom Betriebssystem kann man Varnish auf verschiedene Arten installieren und starten. Viele Linux-Distributionen bieten ein Package für Varnish an, wobei meist noch die Version 5.2 verwendet wird, auf die sich auch dieser Artikel bezieht. Nachdem man das Package erstellt hat, kann man Varnish entweder mit einem Service-Manager wie systemd starten oder man benutzt einfach das varnishd-Kommando auf der Kommandozeile.

Varnish setzt auf das HTTP-Protokoll. Das bedeutet, dass man es vor jede Applikation schalten kann, die über HTTP kommuniziert. Unter anderem spielt es keine Rolle, welche Programmiersprache oder welcher Webserver hinter Varnish läuft. Wir nutzen diesen Vorteil aus, indem wir einfach den PHP-internen Webserver nutzen. Der PHP-interne Webserver ist zwar nicht für den Einsatz in Produktionsumgebu...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang