Hurra, ein Beitrag am letzten Tag des Jahres. Das ist ja die Steilvorlage, um auf die Metadaten dieses wunderbaren Blogs im Jahr 2018 zu schauen. Durch die eher ungewöhnliche Überschrift bist du vermutlich hierher gekommen. Die Technik heisst Clickbaiting und wird von vielen „Content Producern“ angewendet. Sie funktioniert gut, hinterlässt beim Leser aber oft so ein „Geschmäckle“. Hier im Blog gibt es seit mehr als vier Jahren Beiträge über allerlei Technik, Software, Protokolle und Konzepte und es kommt ganz ohne Clickbaiting hin. Seit drei Jahren zählen wir die Zugriffe und siehe da, es geht steil nach oben.
Wir versuchen die Features unserer Services kurz und prägnant zu erklären, beispielsweise mit Einheiten wie Gigabyte. Leider ist ein Gigabyte eine sehr abstrakte Grösse. Ich selbst habe, ehrlich gesagt, keine wirkliche Vorstellung von einem Gigabyte. Ich weiss, dass ein Gigabyte etwa einer Milliarde Zeichen entspricht. Aber was bedeutet eine Milliarde?
Nimm einen Würfel mit Kantenlänge von einem Meter. Teile ihn dir im Kopf in kleine Würfel von einem Millimeter Kantenlänge. In jeden dieser kleinen Würfel passt nun die Kugel aus der Spitze eines Kugelschreibers (oder ein Zeichen). In den Würfel passen 1000 (Breite) mal 1000 (Länge) mal 1000 (Höhe) Kugeln – eine Milliarde! Die würden dann etwa 4 Tonnen wiegen. Unser kleinstes Hosting Angebot (Standard) hat 10 Gigabyte Webspace, was 10,000,000,000 Kugeln mit einem Gewicht von 40 Tonnen entspräche. Das grösste Paket (Speed) bietet 200 Gigabyte oder 200,000,000,000 Kugeln, die dann 800 Tonnen wiegen würden. Man bräuchte 32 LKW um die Kugeln zu transportieren.
Der Vergleich ist zwar beeindruckend, hilft mir allerdings auch nicht wirklich weiter. Ich bemerke die Einheit Gigabyte, wenn mir mein Telefon eine Nachricht anzeigt, aus der hervorgeht, dass bald kein Platz mehr zur Verfügung steht und ich keine Fotos mehr speichern kann. Gigabytes sind auch relevant beim Internet auf dem Telefon. Nach einer gewissen Menge Traffic überträgt es keine Daten mehr oder nur noch sehr langsam. Der Traffic in unseren Webhostings ist übrigens unlimitiert. Das heisst, beliebig viele Menschen können auf deine Website zugreifen. Beliebig viele Menschen! Also mehr als eine Milliarde.
Worauf ich hinaus will ist die Vielfalt, die so ein Webhosting heutzutage bietet. War vielleicht früher die reine Menge an Speicherplatz interessant, so sind es heute eher andere Fragen. Wie kompliziert oder wie einfach kann ich Software installieren und vor allem welche? Wer hilft mir, wenn ich nicht weiterkomme?
Und deswegen schreibe ich in diesem Artikel mal alles zusammen, was ich in den letzten 3 Jahren, die ich dieses Blog schreibe, so an Features in unserem mittleren Webhosting Paket (Premium) bemerkt habe. Ich vermute mal, dass es noch viel mehr Features gibt, die ich dann demnächst entdecken werde.
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.
.htaccess Datei im Joomla Verzeichnis
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:
LiteSpeed Cache Dateien
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):
Header im Chrome Browser
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:
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.
Joomla Debug
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.
Joomla Debug Konsole
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.
Google Page Speed
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.
Google Page Speed – mit Cache
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
Ladezeit ohne Cache (1.96 Sekunden)
Die Variante mit Cache lädt in 1.05 Sekunden
Ladezeit mit Cache (1.05 Sekunden)
Der Unterschied ist immens und für den Besucher der Site deutlich spürbar!
Western Arctic National Park https://www.flickr.com/photos/nps_wear/31629813276 Public Domain Mark 1.0
Unter Komplexitätsmanagement versteht man den Umgang mit wirtschaftlicher, organisatorischer und technischer Komplexität. Stell‘ dir beispielsweise einen Lieferdienst vor, der die Arbeitszeiten seiner Angestellten mit den verfügbaren Autos und den erfolgten Bestellungen planen muss.
Bei zwei Angestellten, einem Auto und 10 Bestellungen ist das etwas anderes als bei 800 Angestellten, 376 Autos und 7,562 Bestellungen.
Speedy Gonzalez http://izam01.deviantart.com/art/Line-Art-Speedy-Gonzales-294077307 (CC BY 3.0)
Geschwindigkeit ist im Web nicht alles, aber doch sehr wichtig. Daher existieren zahlreiche Methoden die Auslieferung von einzelnen Seiten zu beschleunigen. Eine Beschleunigung kann auf mehreren Ebenen erreicht werden, beispielsweise durch Erweiterungen des benutzten Content Management Systems, durch spezielle Konfigurationen und Erweiterungen der verwendeten PHP Version, die Verwendung von Speicher Managern und speziellen Web Servern auf Betriebssystem Ebene.
In der letzten Zeit hat sich eine Menge im PHP Umfeld und bei Web Servern getan. Auch die Content Management Systeme achten wieder vermehrt auf Performance.
In diesem Blogbeitrag zeige ich, wie du deine, bei uns gehostete, WordPress Installation noch schneller machst.
LiteSpeed Web Cache Server
Wir bei NOVATREND liefern die Seiten deines Webhostings mit dem LiteSpeed Web Server aus. Wie der Name schon vermuten lässt, ist dieser Webserver sehr schnell (Schnellere Antwortzeiten mit dem LiteSpeed Web Server).
PHP 7
Mit der Version 7 wird die Scriptsprache PHP deutlich schneller und sparsamer im Speicherverbrauch. Die darin enthaltenen Änderungen und vielen kleinen Verbesserungen erzielen unter realen Bedingungen oft eine Geschwindigkeitssteigerung von über 100 Prozent.
Wenn du bereits eine Website mit PHP nutzt, solltest du die PHP Version 7 verwenden. Die gängigen Content Management Systeme laufen alle unter PHP 7 und werden deutlich schneller.
In deinem Webhosting kannst du die verwendetet PHP Version in der cPanel Verwaltung im Bereich Software einstellen.
cPanel – PHP Version
Unser Blog läuft beispielsweise noch unter Version 5.5. Wähle einfach die Version 7.0 aus und klicke auf Set as current.
cPanel – PHP – Versionsauswahl
WordPress LiteSpeed Cache Plugin
Die Firma LiteSpeed bietet ein spezielles Plugin für WordPress an. Das LiteSpeed Cache Plugin für WordPress kommuniziert direkt mit dem LiteSpeed Web Server und dessen eingebautem LightSpeed Cache (LSCache).
Die aktuelle Version liefert die im Cache gespeicherten Seiten an Besucher deiner WordPress Installation aus. Wenn sich ein Benutzer anmeldet, werden die Seiten nicht mehr aus dem Cache geladen.
Der grundsätzliche Vorteil beim Einsatz des Plugins ist, dass PHP den LSCache direkt auslesen kann und keine eigene Caching Strategie implementiert werden muss. Das Caching wird dadurch viel effizienter weil natürlich der Verwaltungsoverhead von PHP entfällt. Zusätzlich zum Caching bietet das Plugin noch weitere Features, wie die Unterstützung von:
Die Konfiguration erlaubt bei Bedarf Ausnahmen vom Caching über URI, Kategorien, Tags, Cookies und Browser, sowie weitere Einstellungen für den Umgang mit Kommentaren und mobilen Versionen deiner Seiten.
Die Installation erfolgt, wie beim jedem WordPress Plugin, über den Plugins hinzufügen Dialog.
Installation LiteSpeed Cache
Nach der Installation bietet das Modul in einem zusätzlichen Menü die bereits oben angesprochenen, optionalen Einstellmöglichkeiten.
LiteSpeed Cache – Einstellungen
Die Standard Einstellungen sind ausreichend und müssen nicht verändert werden. Das Plugin funktioniert korrekt wenn du im Menü LiteSpeed Cache – Manage diesen Satz liest
LiteSpeed Cache is maintained and managed by LiteSpeed Web Server.
Fazit
Die Kombination WordPress, PHP7 und LiteSpeed Cache Modul ist einfach zu installieren und bringt eine deutliche Steigerung der Geschwindigkeit beim Laden deiner Website. Unser Blog haben wir auch gerade damit ausgerüstet und sind mehr als zufrieden 🙂