Aus LinuxUser 01/2016

Die Reaktionszeit von Webseiten optimieren (Teil 3)

© Gui Yongnian, 123RF

Expressversand

Durchdachte Einstellungen beim Webserver und kleine Tricks beim Optimieren machen lahmen Webseiten Beine.

Workshop „Webseiten optimieren“

Teil 1: Einführung und Endbenutzer (Client) LU 06/2105, S. 92 http://www.linux-community.de/34587
Teil 2: Redakteur (Inhalt) LU 07/2105, S. 88 http://www.linux-community.de/34588

Als Administrator obliegt Ihnen die Verantwortung für die technischen Aspekte einer Internetseite. Abgesehen von der eingesetzten Hardware beinhaltet das die Konfiguration und den Betrieb des Webservers. Bei allen nachfolgend vorgestellten Aktionen besteht das primäre Ziel darin, die Anzahl der GET-Requests möglichst zu minimieren: Sie verursachen einen Großteil der Last. Somit verringern Sie einerseits die allgemeinen Unkosten in Bezug auf die Anfragen, andererseits die Last auf dem Webserver und erreichen damit in der Gesamtheit eine schnellere Reaktionszeit.

Verfallsdatum

Auf Wunsch ergänzt der Webserver die von ihm ausgelieferten Inhalte (Text und Bilder) mit einem Ablaufdatum beziehungsweise Zeitstempel zu deren Gültigkeit. Rein technisch betrachtet, sendet er in seiner Antwort sogenannte Cache Control Header mit, die entweder relativ zum letzten Zeitpunkt der Änderung der Datei wirken oder sich am letzten Zeitpunkt des Zugriffs orientieren.

Surfen Sie danach die Webseite an, überprüft der Webbrowser zunächst die Inhalte in seinem Zwischenspeicher (Cache). Liegen die Daten bereits lokal vor und ist das dazu hinterlegte Ablaufdatum noch nicht überschritten, nimmt der Browser die Daten direkt aus dem Cache und stellt sie dar. Das geht deutlich schneller, als die Daten erneut über das Netzwerk vom Server zu beziehen. Ist das Zeitlimit jedoch bereits abgelaufen oder lösen Sie ein Nachladen explizit aus (Reload), fordert der Browser die Inhalte erneut vom Server an und aktualisiert die Daten im Cache.

Die Voraussetzung für eine sinnvolle Nutzung stellt in diesem Zusammenhang eine korrekte Systemzeit auf den beteiligten Rechnern dar, was Sie beispielsweise über einen Abgleich via Network Time Protocol (NTP) erreichen. Bei nicht korrekt gesetzter Zeit bleiben die Seiten im Zwischenspeicher entweder zu lange oder zu kurz gespeichert.

Für den Webserver Apache steht für entsprechende Zeitstempel das Modul mod_expires bereit [3]. Sie finden es bei Debian und Ubuntu im Paket apache2-bin [4]. Die Konfiguration des Moduls erfolgt je nach Servertyp und Hoster in der Datei .htaccess oder in den statischen Virtual Hosts unter /etc/apache2/sites-enabled/vh-statics [5]. Die fünf Zeilen in Listing 1 sorgen dafür, dass ein Browser sowohl Bilder in gängigen Formaten als auch CSS-Dateien für einen Zeitraum von 30 Tagen nach dem Zugriff zwischenspeichert.

Nach dem Konfigurieren aktivieren Sie das Modul durch den Aufruf aus der ersten Zeile von Listing 2 und starten den Apache-Webserver neu (zweite Zeile). Verwenden Sie Nginx [6] anstelle von Apache und nutzen Sie eine Konfiguration analog zu Listing 3.

Listing 1

ExpiresByType image/jpg "access plus 30 days"
ExpiresByType image/gif "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType text/css "access plus 1 month"

Listing 2

# a2enmod expires
# service apache2 restart

Listing 3

location ~* \.(png|jpg|jpeg|gif)$ {
  expires 30d;
}

Ob für eine Webseite eine zeitliche Begrenzung eingestellt ist, finden Sie mit dem Programm Curl [7] und der Option -I (Langform --head) auf der Kommandozeile heraus. Ein entsprechender Aufruf liefert nicht die gesamte Webseite, sondern nur die Kopfzeilen (Header). Listing 4 zeigt das Ergebnis für die Webseite des Debian-Projekts. Die Zeilen 12 und 13 geben darüber Auskunft, dass für die Startseite ein Verfallsdatum gilt.

Listing 4

$ curl --head http://www.debian.org
HTTP/1.1 200 OK
Date: Tue, 14 Jul 2015 16:59:22 GMT
Server: Apache
Content-Location: index.en.html
Vary: negotiate,accept-language,Accept-Encoding
TCN: choice
Last-Modified: Sat, 11 Jul 2015 23:34:58 GMT
ETag: "3a4e-51aa1efc97682"
Accept-Ranges: bytes
Content-Length: 14926
Cache-Control: max-age=86400
Expires: Wed, 15 Jul 2015 16:59:22 GMT
X-Clacks-Overhead: GNU Terry Pratchett
Content-Type: text/html
Content-Language: en

Statisch und dynamisch

Die Webserver Apache und Nginx liefern Inhalte an und für sich bereits zügig aus. Nimmt die Menge der Anfragen jedoch zu, kommt auch serverseitig das Thema Caching von Inhalten ins Spiel. Dabei unterscheiden sich die Varianten in Bezug auf den Speicherort, wobei man zwischen dem Disk Cache und dem Memory Cache unterscheidet. Während die erste Variante die übermittelten Inhalte auf einem Datenträger puffert, nutzt die zweite Variante das RAM als Zwischenspeicher. Ein Disk Cache arbeitet naturgemäß langsamer als ein Memory Cache, bietet dafür aber mehr Kapazität.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 01/2016 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: