Um die Performance der Websites unserer Kunden auch bei hohem Besucheraufkommen zu maximieren, verwenden wir bei NOVATREND seit fast zwei Jahren den LiteSpeed Webserver. Damals haben wir dabei auch entschieden, die Sicherheit und die Vertrauenswürdigkeit der Kundenwebsites durch die einfache und kostenlose Bereitstellung von SSL Zertifikaten zu erhöhen.
Die Übertragung von verschlüsselten Websites ist komplexer als die Übertragung unverschlüsselter Websites und von daher langsamer. Durch den Einsatz des LiteSpeed Webservers konnte dieser Nachteil allerdings mehr als ausgeglichen werden. Die verschlüsselten Websites laufen unter dem LiteSpeed Webserver schneller als die unverschlüsselten Sites unter anderen Servern. Wir haben den Effekt in einem ausführlichen Blogpost mit Geschwindigkeitsmessungen dokumentiert: Schnellere Antwortzeiten mit dem LiteSpeed Web Server.
Im letzten Jahr wurde dann PHP 7 released. Die Version 7 gab der gesamten PHP Welt einen Leistungsschub und wir berichteten über die Kombination WordPress + PHP7 + LiteSpeed Cache = Richtig Schnell! Neben dem WordPress Plugin gibt es auch ein Plugin für Magento. Weitere Plugins sollen folgen.
Es geht auch ohne Plugin!
Um in den Genuss einer Geschwindigkeitssteigerung durch den LiteSpeed Cache zu kommen, müssen nur wenige Kommandozeilen in die .htaccess Datei eingetragen werden. Das hört sich kompliziert an, ist aber ganz einfach.
LiteSpeed Cache für Joomla konfigurieren
Um die Joomla Konfiguration für den Einsatz des LiteSpeed Caches durchzuführen, musst du die .htaccess Datei deiner Joomla Installation in einem Editor öffnen. Die Datei befindet sich im root Verzeichnis deiner Joomla Installation.
In der Zeile 64 findest du folgende Zeile:
## Begin - Joomla! core SEF Section.
Direkt davor musst du die folgenden Kommandos einfügen und natürlich meine Testdomain joomla.seafolly.ch durch deinen Domainamen austauschen:
## End - Rewrite rules to block out some common exploits. <IfModule LiteSpeed> CacheDisable public / RewriteEngine On RewriteCond %{REQUEST_METHOD} ^HEAD|GET$ RewriteCond %{HTTP_HOST} ^joomla.seafolly.ch$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.joomla.seafolly.ch$ [NC] RewriteCond %{HTTP_COOKIE} !loginuser RewriteCond %{ORG_REQ_URI} !^/index.php$ RewriteCond %{ORG_REQ_URI} !administrator RewriteCond %{ORG_REQ_URI} (\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] RewriteRule .* - [E=Cache-Control:max-age=120] </IfModule> ########## End - Litespeed cache
Du musst entscheiden, wie lange der Cache erhalten bleiben soll. Im Beispiel beträgt die Haltbarkeit 120 Sekunden. Das wird durch diesen Befehl ausgedrückt:
RewriteRule .* - [E=Cache-Control:max-age=120]
Je nachdem, wie deine Website aufgebaut ist, kannst du diese Zeit verändern. Eher statische Websites mit gleich bleibenden Seiteninhalten können auch länger gecached werden. Sites mit vielen dynamischen Elementen, wie beispielsweise Kommentaren, benötigen unter Umständen eine kürzere Cache Haltbarkeit, damit aktuelle Kommentare schnell auf der Seite erscheinen.
Funktioniert alles?
Es gibt mehrere Methoden zu überprüfen, ob der LiteSpeed Cache korrekt funktioniert.
- Zunächst sollte deine Seite nach ein paar mal „hin- und herklicken“ deutlich schneller laden. Das „hin- und herklicken“ dient dazu, den Cache zunächst testweise aufzubauen. Auf einer gut besuchten Site erfolgt der Aufbau des Caches sehr schnell und automatisch über die Aufrufe der Besucher.
- Wenn der Cache funktioniert, befinden sich im lscache Verzeichnis Dateien wie diese:
- Der LiteSpeed Server liefert den Header X-LiteSpeed-Cache: hit an deinen Browser aus. Das kannst du einfach, beispielsweise im Chrome Browser, überprüfen (Inspect -> Network -> All -> Deine Domain):
Hausputz
Einmal pro Tag wird dein LiteSpeed Cache von uns automatisch geleert. Wenn du willst, kannst du die abgelaufenen Cache Dateien auch öfter löschen. Dazu erstellst du dir einfach einen Cronjob mit folgendem Inhalt:
*/10 * * * * find /home/seafoll1/lscache -type f -mmin +8 -delete 2>/dev/null
Der Name seafoll1 muss durch den Namen deines Webhostings ersetzt werden. In diesem Beispiel löscht der Cronjob alle 10 Minuten (*/10) die Dateien, die älter als 8 Minuten (-mmin +8) sind.
Wie funktioniert der Cache und was sagt Google dazu?
In einem Cache werden Seiten oder Teilbereiche von Seiten als Datei abgespeichert.
- Mit LiteSpeed Cache liefert der Webserver die gecachete Seite ohne einen Datenbankzugriff aus.
- Ohne LiteSpeed Cache wird die Site auf herkömmliche Art ausgeliefert (PHP wird interpretiert und fragt bei der Datenbank an). Diese Variante dauert länger.
Um den Effekt zu verdeutlichen, schalte ich in der Joomla Administration den Debug Mode an.
Wenn ich nun auf das Joomla Frontend zugreife, erscheinen unten Informationen zum Systemzustand (Joomla Debug Konsole). Dort wird neben anderen Informationen auch die Anzahl der durchgeführten Datenbankabfragen und deren Dauer angezeigt.
Um die Standard Startseite einer „frischen“ Joomla Installation anzuzeigen, wird 24 mal auf die Datenbank zugegriffen. Das dauert in meinem Fall 16.43 Millisekunden.
Jetzt kommt Google ins Spiel. Googles Page Speed Tools sind oft wichtig in Kundengesprächen. Neben anderen Parametern zeigen sie die Server Response Time als Möglichkeit an, die Performance deiner Website zu erhöhen.
In diesem Fall beträgt die Server Response Time 0.27 Sekunden. Die Zeit, die Joomla benötigt um in der Datenbank zu suchen, ist 0.01643 Sekunden. Ohne den Datenbankanteil müsste die Auslieferung der Site um diesen Betrag schneller sein. Ich konfiguriere den LiteSpeed Cache und siehe da: die Meldung bezüglich der Server Response Time verschwindet, die Punktzahl erhöht sich sogar um einen Punkt. Andere Möglichkeiten des Tunings werden angezeigt.
Hinweis: Es handelt sich bei diesem Beispiel um die einfachste mögliche Joomla Installation. Bei jeder individuellen Joomla Installation ist der Effekt größer! Außer dem Seitencache spielen auch zahlreiche andere Faktoren bei Google Page Speed eine Rolle.
Nun denkt man sich vielleicht
Hhm … einen Punkt besser, das haut mich aber nicht um!
Der eine Punkt ist nicht das Ziel. Das Ziel ist die Server Response Time so niedrig wie möglich zu bekommen, so dass Google gar nicht auf die Idee kommt, dass es noch schneller funktionieren könnte. Je mehr Teile vom Server geladen werden, und das sind bei aktuellen Websites viele Teile, desto effektiver wird alles. Um den Effekt nochmal deutlich anhand der Ladezeiten im Browser zu zeigen:
- Die Variante ohne Cache lädt in 1.96 Sekunden
- Die Variante mit Cache lädt in 1.05 Sekunden
Der Unterschied ist immens und für den Besucher der Site deutlich spürbar!
Links
tl;dr: LiteSpeed Cache sorgt für eine erhebliche Performance Steigerung deiner Website
Schreibe einen Kommentar