Wie sinnvoll ist der Einsatz des Webbeschleunigers Varnish zusammen mit nginx?

Wie sinnvoll ist der Einsatz des Webbeschleunigers Varnish zusammen mit nginx?

Die Varnish-Software wird im Internet als eine Art neues Allheilmittel gehandelt, wenn es darum geht, Websites zu beschleunigen. Shopbetreiber träumen davon, dass dank dieser Software der eigene Onlineshop binnen Millisekunden lädt und die Umsätze dadurch rasant ansteigen. Auch das Suchmaschinenranking soll sich quasi per Knopfdruck und ohne großen Aufwand merklich verbessern. Doch inwieweit kann der Webbeschleuniger die an ihn gestellten Erwartungen wirklich erfüllen? Im Folgenden einige wichtige Informationen für den Einsatz der Software im Zusammenspiel mit dem nginx-Webserver.

 

Keine Unterstützung von SSL/HTTPS

Ein gravierender Nachteil des Webbeschleunigers ist dessen fehlende Unterstützung von SSL beziehungsweise HTTPS. Somit ist die komplett verschlüsselte Auslieferung Ihrer Webseiten quasi unmöglich. Neben Bedenken Ihrer User hinsichtlich der Datensicherheit riskieren Sie im schlimmsten Fall dadurch sogar eine Herabstufung seitens Google. Der Suchmaschinengigant bevorzugt verschlüsselte Seiten und berücksichtigt diesen Fakt mittlerweile als eigenen Parameter in seinem Algorithmus.

 

Erhöhte Komplexität

Dadurch dass Sie Varnish als Reverse Proxy vor einen vorhandenen Webserver schalten, erhöhen Sie unweigerlich die Komplexität. Zudem steigt die Fehleranfälligkeit des Setups, da der zusätzliche Reverse Proxy Dienst fehlerfrei mit anderen Services zusammenarbeiten und korrekt konfiguriert sein muss.

 

Keine Beschleunigung des nginx-Servers

Die Varnish-Software ist nicht schneller als der nginx-Webserver selbst. Denn die zusätzliche Software bringt Ihnen nur etwas, wenn gecachte Inhalte vorliegen. Diese können Sie aber auch direkt über den nginx-Webserver ausliefern. Die nginx-Software beherrscht das Caching und ist in der Lage, Inhalte aus dem Cache unter Umgehung des PHP-/MySQL-Stacks direkt aus dem memcache, Redis, von der Festplatte oder dem eigenen FastCGI-Cache zu lesen. Beispiele für das Zusammenspiel mit memcache und Redis sowie weitere Infos finden Sie zum Beispiel hier:


Allerdings soll nicht verschwiegen werden, dass es eine Ausnahme gibt, bei der der Einsatz der Varnish-Software durchaus Sinn machen kann. Beherrscht die eingesetzte Webapplikation Edge Side Includes (kurz ESI, siehe http://de.wikipedia.org/wiki/Edge_Side_Includes), kann Varnish dank der gesetzten ESI-Tags die als Ganzes gecachte Seite laden. ESI ist dort sinnvoll, wo sich dynamischer Inhalt befindet, der eigentlich nicht gecacht werden soll (zum Beispiel Warenkorb, Artikelempfehlungen, Preis, Anzahl vorrätiger Artikel und weiterer Inhalt). Varnish erkennt die ESI-Tags und kann die entsprechenden Inhalte (z.B. den Warenkorb) dann nachladen.

 

Nur wenige Webapplikationen mit ESI-Unterstützung

Leider gibt es nur wenige Webapplikationen mit ESI-Unterstützung. So zum Beispiel bei Shopware nur in der Enterprise-Version (ab EUR 12.995,- zuzüglich Mehrwertsteuer) (siehe http://www.shopware.de/die-shopsoftware/enterprise-basic/uebersicht/).

Die ESI-Unterstützung in Magento ist sogar nur über externe Magento Module, entweder selbstgeschrieben (mit entsprechendem Programmier- und Testaufwand) oder zum Beispiel mit dem  PageCache-Modul in der Enterprise-Version für EUR 1.000,- möglich (siehe dazu: http://www.magentocommerce.com/magento-connect/PHOENIX/extension/6322/varnish_cache). Leider besteht bei externen Modulen zusätzlich die Gefahr, dass sie mit neuen Magento-Versionen erst verspätet kompatibel werden oder im schlimmsten Falle nicht mehr weiter gepflegt werden.

 

Hoher Einrichtungs- und Testaufwand

Falls Ihre Webanwendung ESI-Tags unterstützt und Sie daher die Varnish-Software einsetzen möchten (für andere Fälle macht es ja wenig Sinn), müssen Sie sie individuell konfigurieren. Eine Art Standardkonfiguration für alle Setups oder einen bestimmten Onlineshop gibt es leider nicht. Diese erstmalige Einrichtung ist sehr aufwendig, denn für alle dynamischen Blöcke wie zum Beispiel Warenkorb, Artikelempfehlungen und Anzahl vorrätiger Artikel legen Sie einzeln fest, ob und wenn ja für wie lange der Inhalt gecacht werden darf. Zudem müssen Sie definieren, wann generell kein gecachter Inhalt auszuliefern ist (zum Beispiel bei POST-Requests, bei GET-Requests mit Parametern, bei bestimmten Cookies, bei eingeloggten Usern und weiteren Ereignissen). Zusätzlich gibt es Fallstricke wie das Logging der korrekten IP des Nutzers (es soll nicht die IP des Varnish-Dienstes geloggt werden, von dem aus Sicht des Webservers die Anfrage kommt) oder die Verhinderung der Portbenennung in der Adresszeile bei Rewrite Rules. Da die Varnish-Konfiguration sehr komplex ist, ist sie idealerweise von einer erfahrenen Agentur in enger Zusammenarbeit mit Ihnen durchzuführen.

 

Vorsicht bei günstigen Hosting Angeboten mit Varnish-Setup

Jeder, der sich tiefer mit Caching beschäftigt, bestätigt Ihnen, dass die richtige Konfiguration eine sehr aufwendige Arbeit ist, die nicht an einem oder an zwei Tagen zu erledigen ist. Zudem treten bei der Konfiguration immer wieder Fehler auf, die zeitintensiv mit erhöhtem Testaufwand nachzuarbeiten sind. Fehler wie zum Beispiel nicht funktionierende Warenkörbe gehören für Sie in der Zeit der Einrichtung zum Alltagsgeschäft. Leider gibt es einige Webhoster, die die Varnish-Software äußerst günstig zusammen mit ihrem Hosting anbieten. Preise von 20 bis 30 Euro für das komplette Hostingpaket sind keine Seltenheit. Es drängt sich in diesem Fall die Frage auf, wie der Aufwand für die Varnish-Konfiguration in diesem Preis berücksichtigt sein kann. Denn kein Mitarbeiter des Hosters kann zu diesem geringen Preis eine individuelle und optimale Varnish-Konfiguration erstellen. Die Vermutung liegt nahe, dass die Software ohne weitere Konfiguration und ohne Caching-Funktion auf dem Webserver installiert ist, nur um Kundenanfragen zu befriedigen. Damit ist sie für den Kunden allerdings mehr oder weniger nutzlos.

Bei einem seriösen Anbieter müssen Sie mit Kosten von mindestens einigen Hundert Euro rechnen, soll er die Varnish-Software wirklich individuell für Ihren Shop konfigurieren und einrichten.

 

Fazit

Ohne SSL-Unterstützung und aufgrund der Tatsache, dass in der Regel auf die in nginx vorhandenen Caching-Möglichkeiten zurückgegriffen werden kann, bringt der Varnish-Webbeschleuniger meist keine Vorteile. Im Gegensatz müssen Sie sogar mit einer höheren Komplexität rechnen. Zudem entsteht erheblicher zeitlicher und finanzieller Aufwand für die ESI-taugliche Konfiguration und Programmierung sowie die langwierigen Tests des fertigen Setups.

Mehr zu dem Thema finden Sie auch hier:

https://rtcamp.com/blog/why-we-never-use-varnish-with-nginx/
http://www.fabrizio-branca.de/magento-varnish-ajax-vs-esi.html

Nach oben