Kategorien
Content Management Systeme Infrastruktur Performance Server Shared Hosting Site Builder

Joomla + LiteSpeed Cache = Speed

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
.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
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
    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:

*/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.

Joomla Debug
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
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
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
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
Ladezeiten ohne Cache
Ladezeit ohne Cache (1.96 Sekunden)
  • Die Variante mit Cache lädt in 1.05 Sekunden
Ladezeit mit Cache (1.05 Sekunden)
Ladezeit mit Cache (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

Save

Kategorien
Content Management Systeme Performance Shared Hosting

WordPress + PHP7 + LiteSpeed Cache = Richtig Schnell!

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
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
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:

  • HTTP/2 & HTTPS
  • WordPress Einzel- und Multisite Installationen
  • WooCommerce und bbPress.

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
Installation LiteSpeed Cache

Nach der Installation bietet das Modul in einem zusätzlichen Menü die bereits oben angesprochenen, optionalen Einstellmöglichkeiten.

LiteSpeed Cache - Einstellungen
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 🙂

Links


tl;dr: Bei NOVATREND ist deine WordPress Installation noch schneller!

Kategorien
Infrastruktur Performance Webserver

Schnellere Antwortzeiten mit dem LiteSpeed Web Server

In den Monaten November und Dezember 2015 haben wir die Auslieferung der Websites für alle Webhostings bei Novatrend deutlich beschleunigt. Möglich wurde das durch die Nutzung eines anderen Web Servers. Vor November 2015 nutzten wir ausschliesslich den Apache HTTP Server. Nach und nach haben wir dann alle Web Hostings mit dem LiteSpeed Web Server versehen.

Gemäss w3techs.com wird LiteSpeed von mehr als 2 Prozent aller Websites weltweit genutzt, Tendenz steigend (http://w3techs.com/technologies/overview/web_server/all).

Usage of web servers for websites
Usage of web servers for websites

Mit Hilfe von Services wie site24x7.com kann man Antwortzeiten von Websites messen. Unser Kunde Adi Heutschi hat das für seine beiden Sites arbeitsrentner.ch und adiheutschi.ch mal genauer untersucht. Im Zeitraum der Untersuchung hat er seine Sites auf SSL umgestellt und wir haben den Web Server ausgetauscht. Alle Screenshots sind von Adi Heutschi erstellt worden.

Website – adiheutschi.ch

Die Website nutzt Joomla und läuft mit dem Apache HTTP Server. Am 18.11.2015 erhält Sie ein SSL/TLS Zertifikat und die Antwortzeiten werden größer. Hier ein Screenshot vom 19.11.2015.

adiheutschi.ch - SSL-Aktivierung/Apache
adiheutschi.ch – SSL-Aktivierung/Apache

Am 17. Dezember wird der Apache HTTP Server von unserer Seite durch den LiteSpeed Web Server ersetzt. Die Verbesserung der Antwortzeiten ist deutlich zu sehen.

adiheutschi.ch - Umstellung Apache -> LiteSpeed
adiheutschi.ch – Umstellung Apache -> LiteSpeed

Die erste Woche vom 20.12. – 26.12.2015 sieht dann so aus:

adiheutschi.ch - eine Woche - LiteSpeed mit SSL
adiheutschi.ch – eine Woche – LiteSpeed mit SSL

Website – arbeitsrentner.ch

Auch diese Site lief mit Joomla und dem Apache HTTP Server. Hier wurde SSL/TLS am 16.12.2015 um 11:00 Uhr aktiviert. Die Antwortzeiten werden grösser.

arbeitsrentner.ch - SSL-Aktivierung/Apache
arbeitsrentner.ch – SSL-Aktivierung/Apache

Am 17.12.2015, also einen Tag später wurde dann auf den LiteSpeed Server gewechselt. Die Antwortzeiten werden kürzer, es gibt aber vereinzelte Peaks (lange Antwortzeit).

arbeitsrentner.ch - Apache -&gt; LiteSpeed
arbeitsrentner.ch – Apache -&gt; LiteSpeed

Etwas besser kann man beide Effekte in diesem Chart sehen. Es deckt die Woche vom 13.12-19.12.2015 ab. Nach der SSL/TLS Aktivierung wird alles etwas langsamer, nach Einführung von LiteSpeed wieder schneller.

arbeitsrentner.ch - Umstellungszeitraum
arbeitsrentner.ch – Umstellungszeitraum

Wiederum eine Woche, in der Zeit vom 21.12-16.12.2015, später stabilisieren sich die Antwortzeiten im Durchschnitt auf 681 ms.

arbeitsrentner.ch - LiteSpeed Server mit SSL/TLS
arbeitsrentner.ch – LiteSpeed Server mit SSL/TLS
Hier zum Vergleich eine Woche Anfang Dezember (06.12. – 12.12.) mit dem Apache HTTP Server ohne SSL. Im Durchschnitt lagen dort die Antwortzeiten bei 869 ms, mehr als 20 Prozent besser als zuvor.

Fazit

Zunächst sagen die Werte in Millisekunden (ms) wenig über echte Antwortzeiten am Telefon oder dem heimischen PC aus, da diese von sehr vielen Faktoren abhängig sind. Interessant ist aber die sichtbare Beschleunigung nach Einsatz des LiteSpeed Web Servers.
Der Einsatz von SSL/TLS verlangsamt grundsätzlich die Auslieferung von Websites. Der LiteSpeed Web Server kann diesen Unterschied, verglichen mit dem Apache HTTP Server, jedoch mehr als ausgleichen. Durch den Einsatz von HTTP/2 (siehe auch Transportverschlüsselung und HTTP/2 für alle – kostenlos!) und weitere Massnahmen wird die Auslieferung aller Websites massiv beschleunigt. Auf der Benchmark Seite von LiteSpeed kann man das an verschiedenen Szenarien nachvollziehen (Statische Seiten, PHP – Hello World, HTTPS und mehr). Im Screenshot kannst du ein Beispiel für WordPress Sites sehen:

Benchmark - WordPress
Benchmark – WordPress

Es besteht auch die Möglichkeit den LiteSpeed Web Server auf deinem dedizierten Server und beim Cloud Hosting zu nutzen. Hier müssen wir allerdings Lizenzkosten in Höhe vom 50 CHF pro Monat erheben. Für Rückfragen kontaktiere uns einfach per E-Mail.


tl;dr: Durch einen Wechsel der Web Server Software antworten alle von uns gehosteten Websites schneller auf Anfragen