Plesk – nginx Server Caching einrichten
Caching ist eines der wichtigsten Faktoren wenn es um die schnelle Auslieferung einer Website geht. Ich hoste technikkram bei netcup und nutze dort Plesk als Verwaltungsoberfläche. Plesk setzt auf eine Kombination aus eine Apache Webserver in Kombination mit einem nginx Reverse-Proxy. Dieser Reverse-Proxy ist zwischen Client und dem Apache Webserver geschaltet und liefert sehr effizient die geforderten Datenpakete ohne dass diese vorher von Apache abgerufen werden müssen. Das hat den Vorteil, dass der „Weg der Daten“ viel kürzer ist und die Seite sehr viel schneller bei Euch auf dem Monitor erscheint. Wer mehr zu diesem Thema wissen will, sollte sich das nginx / Apache Kapitel der Plesk Dokumentation ansehen.
Wenn Ihr bei einem Hoster wie z.B. raidboxes seid, dann müsst Ihr Euch um dieses Thema keine Sorgen machen, da das Caching serverseitig für Euch übernommen wird. Hier passiert nicht viel anderes als das oben beschriebene, nur das Ihr keinen Einfluss auf das serverseitige Caching habt. Das sieht bei einem eigenen Server natürlich anders aus. Hier muss das Caching selber eingerichtet werden. Wie dies bei Plesk funktioniert und welche Auswirkungen dies hat, will ich Euch in diesem kurzen Artikel beschreiben.
Woran könnt Ihr ein schlechtes bzw. kein vorhandenes Caching erkennen?
Das Caching wirk sich direkt auf das „first Byte“ aus. Dieser Wert kann z.B. mit webpagetest.org eingesehen werden. Ich zeige Euch hier, wie lange technikkram ohne effektives Caching lädt und wie dieser Wert deutlich verbessert werden kann. Auf dem ersten Bild seht Ihr, wie technikkram lädt, wenn der nginx Reverse-Proxy ausgeschaltet ist. Das first Byte ist extrem schlecht. Der Server braucht sehr lange um Daten zu liefern nachdem die URL aufgelöst worden ist. Das liegt daran, dass alle Anfragen nun direkt an den Apache Server weitergeleitet werden. Diese muss die Daten aus dem RAM abrufen, berechnen und dem User zur Verfügung stellen. Das nimmt natürlich Zeit in Anspruch, die der User beim laden der Seite deutlich zu spüren bekommt!
Im zweiten Bild seht Ihr, wie schnell die gleiche Website, bei sonst gleichen Einstellungen lädt, wenn nginx als Reverse-Proxy die Daten vorhält. Die Werte sind deutlich niedriger und die Seite ist viel schneller verfügbar. Hieran kann man sehr gut erkennen, wie gutes Caching funktioniert.
Wie muss nginx konfiguriert werden um das Caching zu aktivieren?
Gutes Caching ist unter Plesk kein großes Geheimnis. Folgende Schritte müsst Ihr ausführen, damit diese Option aktiviert ist. In Euer Plesk-Installation kann jede WordPressinstanz einzeln konfiguriert werden. Unter den nginx Einstellungen findet Ihr folgende Optionen:
Hier ist an oberster Stelle der Proxymodus zu sehen. Damit aktiviert Ihr Apache und nginx in Kombination. Wer mehr dazu wissen will, sollte den Link den ich Euch im obersten Absatz genannt habe folgen – hier ist dies sehr genau dokumentiert. Um das nginx Caching zu aktivieren, muss „nginx-Caching aktivieren“ ausgewählt werden. Auch die Option „Statische Dateien direkt durch nginx bedienen“ muss dazu aktiviert werden. In dem darunterliegenden Feld können alle Dateien aufgelistet werden (durch Leerzeichen getrennt), die statisch über nginx ausgeliefert werden sollen. ALle Dateien, die hier aufgelistet sind werden nun nicht mehr über den langsamen Apache vom Server abgerufen sondern von nginx aus dem Cache an den User ausgeliefert.
Wichtig ist zudem die Option „Intelligente Bearbeitung statischer Daten“. Damit werden dynamische Inhalte, die sich auf dem Server befinden trotzdem über Apache ausgeliefert, obwohl diese evtl. vom Dateityp immer gecached werden sollen.
Ich bin wirklich sehr begeistert von Plesk und finde die Bedienung und Möglichkeiten, die mir hiermit gegeben werden enorm. Damit ist es über eine grafische Oberfläche möglich die eigene Website auf einem Root oder vServer zu hosten.
Hi Sebastian, hast du dich schon einmal mit Generatoren für statische Webseiten beschäftigt? Zum Beispiel Hugo oder Jekyll. Wenn ich Beiträge wie diesen lese, bin ich immer froh, dass ich mir mit meiner statischen Webseite diesen ganzen Aufwand beim Hosting sparen kann :-P