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 -> LiteSpeed
arbeitsrentner.ch – Apache -> 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

Kategorien
Allgemein News Security

Transportverschlüsselung und HTTP/2 für alle – kostenlos!

Seit ein paar Tagen können Sie bei uns kostenlose TLS Zertifikate für Ihre Domain zu erzeugen und einzusetzen.
Diese Art der Verschlüsselung macht es möglich, dass wir Ihnen bei dieser Gelegenheit auch die Nutzung des schnelleren Übertragungsprotokolls HTTPS/2 SPDY anbieten.

Kurz: Ihre Website wird dadurch sicherer UND schneller 🙂

Aber der Reihe nach:

TLS Zertifikate für alle Domains aller Webhosting Kunden

Wie bereits in mehreren Blogposts angesprochen, ist es nun so weit. Die Zertifizierungsstelle Let’s encrypt hat Ihren Betrieb aufgenommen und bietet kostenlose X.509-Zertifikate für Transport Layer Security (TLS) an. Also genau das, was gemeinhin als SSL Zertifikat bezeichnet wird. Wie versprochen (Natürlich wird es kostenlose SSL/TLS Zertifikate geben – auch bei uns 🙂 ) haben wir so schnell wie möglich dieses Feature auch für unsere Webhosting Kunden bereitgestellt.
Innerhalb der Verwaltungsoberfläsche cPanel gibt es dafür im Bereich Sicherheit ein neues Dialog-Icon – Let’s Encrypt SSL.

cPanel - Sicherheit
cPanel – Sicherheit

In unseren FAQ ist detailliert beschrieben, wie Sie sich ein Zertifikat installieren können (Wie kann ich ein kostenloses Let’s Encrypt Zertifikat installieren?).
Das Zertifikat wird nach Ablauf automatisch für Sie verlängert und bietet handfeste Vorteile:

  1. Der Datenverkehr zwischen dem Browser eines Besuchers und Ihrer Website ist verschlüsselt und erhöht so die Sicherheit bei der Übermittlung von privaten Daten wie beispielsweise Passwörtern und Zahlungsinformationen.
  2. Verschlüsselter Datenverkehr erhöht allgemein das Vertrauen Ihrer Kunden in die Sicherheit Ihrer Website
  3. Für die Benutzung eines SSL-Zertifikats gibt es im Ranking Faktor Ihrer Website bei Google einen Bonus.

HTTP/2 – was ist das?

Das Hypertext Transfer Protokoll (HTTP) ist ein zustandsloses Protokoll und wird hauptsächlich dazu eingesetzt Websites von einem Server zu laden. Das Wort zustandlos beschreibt auch gleich das grösste Problem bei der Kommunikation. Bei jeder neuen Anfrage muss die Verbindung neu „ausgehandelt“ werden. Das kostet Zeit und Ressourcen. Hier ein Beispiel aus dem Leben.

Mein Browser auf meinem PC spricht HTTP in der Version 1.1 und fragt den Host mit dem Namen serverblogger.ch nach seiner Seite (GET / HTTP/1.1 …). Dabei schickt mein Browser alle möglichen Informationen mit. Diese Informationen enthalten beispielsweise den Typ des Browsers (user-agent), die Art des gewünschten Dokuments (Accept), die bevorzugte Sprache (Accept-Language) und weitere Informationen. Diese Daten sind unverschlüsselt und werden an den Webserver geschickt.

GET / HTTP/1.1
Host: serverblogger.ch
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

Der Server antwortet (HTTP/1.1 200 OK) und schickt seinerseits (je nach Konfiguration) alle möglichen Daten mit. Der Webserver ist ein Apache, Betriebssystem ist Ubuntu, etc.

HTTP/1.1 200 OK
Date: Fri, 18 Dec 2015 14:49:43 GMT
Server: Apache/2.4.7 (Ubuntu)
X-Powered-By: PHP/5.5.9-1ubuntu4.14
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 105
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

Nach diesen „Headern“ wird dann der eigentliche Text der Website übertragen, den der Browser dann entsprechend darstellt. Das Beispiel stammt von unserem Testserver, den wir für die Artikel des Blogs nutzen.

Hier ein weiteres Beispiel von der aktuellen novatrend.ch Website.

Die Anfrage meines Browser ist die gleiche, die Antwort des Servers ist aber unterschiedlich:

GET /de/ HTTP/1.1
Host: www.novatrend.ch
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:42.0) Gecko/20100101 Firefox/42.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0

Mein Browser bietet als Protokoll HTTP/1.1 an, der Server antwortet jedoch mit HTTP/2.0. Als Server wird nicht Apache, sondern LiteSpeed benutzt und als letzter „Header“ wird noch ein X-Firefox-Spdy Wert mitgegeben. Der Server hat also bemerkt, dass ich den Firefox Browser benutze und entsprechend darauf reagiert. Je nach Website wird mehrmals nachgefragt, um alle Grafiken, CSS Dateien und was es zum Aufbau der Site benötigt, herunterzuladen.

HTTP/2.0 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Date: Fri, 18 Dec 2015 15:04:30 GMT
Accept-Ranges: bytes
Server: LiteSpeed
X-Firefox-Spdy: h2

Nun sind wir in der Welt der vielen Protokolle angekommen und müssen etwas genauer hinsehen:

HTTP ist ein zustandloses Protokol, das jede Verbindung zwischen Client und Server neu aushandelt. Um das zu vereinfachen erfand man Cookies und Session-Ids und der Server seinerseits versucht mittels den Keep-Alive Einstellungen eine Verbindung so lange wie möglich „offen zu halten“. In Cookies und Sessions-IDs stecken jedoch hoch interessante Daten und viele offene Verbindungen machen den Server langsam, füllen dessen Speicher und machen ihn anfällig für Szenarien, bei denen ein Client nur eine GET Anfrage schickt aber nicht weiter kommuniziert. HTTPS ist die sichere Variante von HTTP, die noch einmal mehr Informationen hin und her schickt um eine verschlüsselte Verbindung zu ermöglichen.

HTTP/2 ist abwärtskompatibel zu HTTP1.1 und soll alles besser machen. Client Anfragen können zusammengefasst werden, Daten und andere Inhalte können binär kodiert und komprimiert übertragen werden und der Server kann selbst Datenübertragungen initieren (PUSH). Gerade das letzte Feature ist sehr hilfreich bei Web-Applikationen. HTTP/2 wurde massgeblich von Google (SPDY) und Microsoft (HTTP Speed) initiert. Googles SPDY setzte sich dann durch. Die Abkürzung SPDY steht übrigens für speedy, also schnell :).

Ursprünglich war geplant, das HTTP/2 standardmässig TLS, also verschlüsselte Verbindungen mit SSL Zertifikaten, nutzt. Im finalen Entwurf entfiel diese Option allerdings. Der Geschwindigkeitsvorteil des Protokolls wird in erster Linie über das Zusammenfassen von Anfragen erreicht.

Google (Chrome) und Mozilla (Firefox) kündigten jedoch an, HTTP/2 nicht ohne Verschlüsselung nutzen zu wollen und implementierten Googles SPDY in die Browser. Wenn nun ein Webserver wie Litespeed diese Technik mittels des Headers X-Firefox-Spdy: h2 anbietet, so nutzt der Firefox Browser das HTTP/2 Protokoll (für Chrome gibt es einen entsprechenden Header).

SPDY sorgt, wie der Name vermuten lässt, für eine Beschleunigung der verschlüsselten Kommunikation, verglichen mit dem HTTPS Protokoll. Die Kommunikation gesicherter Verbindungen wird „vereinfacht“ in dem die Wege der Datenpakete optimiert werden. Dadurch werden verschlüsselte Verbindungen ähnlich schnell wie unverschlüsselte Verbindungen.

An dieser Stelle kann man auch nachvollzieghen, warum Google verschlüsselten Verbindungen einen kleinen Bonus auf den Page Rank gibt. Zum einen setzt sich dadurch verschlüsselte Kommunikation schneller durch und zum anderen wird der Geschwindigkeitsnachteil ausgeglichen.

Im nächsten Schritt soll SPDY ebenfalls ein Standard werden. Der heisst dann Application-Layer Protocol Negotiation oder kurz ALPN und stellt eine Erweiterung von TLS dar.

Die HTTP Befehle zwischen Ihrem Browser und einem beliebigen Server lassen sich übrigens mit dem Live HTTP Headers Add-On für Firefox und Chrome beobachten.

Fazit

Auch wenn das jetzt vielleicht ein wenig zu technisch war, so bleiben hoffentlich zwei Dinge im Gedächtnis:
Ihre Website bei uns ist jetzt SICHERER und SCHNELLER 🙂

Links:


tl;dr: Novatrend bietet kostenlose TLS Zertifikate für Ihre Website und liefert sie mittels HTTP/2 aus. Das macht Ihre Website sicherer und schneller.