Ich habe mich in den letzten Tagen mit einer wilden Mischung beschäftigt. Angefangen hat alles mit dem Artikel 15 Easy Ways To Speed Up WordPress: Why Slow Page Load Equals Slow Blog Growth. Ich hatte nämlich das Problem, das mein Blog sehr langsam geladen hat.
WordPress
Als erste Maßname wollte ich auf das Plugin W3 Total Cache wechseln. Das hatte noch mehr Einstellungsmöglichkeiten. Ich hatte noch ein Problem mit dem Preview-Modus, der sich nicht abschalten lies, doch dazu mehr, wenn ich das klären konnte,
Bei dem Plugin findet man schnell die Einstellungen zum CDN, bei dem Bilder auf einen anderen Server ausgelagert werden können. Das Ganze lässt sich auch mit Hosteurope betreiben, aber nur mit einem Patch. Details finden sich im Artikel WordPress & CDN: W3 Total Cache & Host Europe Cloud Storage.
So kommt man dann schnell bei den Amazon Webservices an, die mit CloudFront ein CDN im Programm haben (wobei ich mir auch viele andere Dienste angeschaut habe). Passend dazu gibts auch einige Artikel: Using Amazon Cloudfront CDN with W3 Total Cache WordPress Plugin und Set up W3 Total Cache with Amazon CloudFront CDN. Abschließend kann man sich noch diese Tipps durchlesen: WordPress W3 Total Cache – Best W3 Total Cache Setup.
LXC
Wo testet man solche Sachen eigentlich am Besten? In einer virtuellen Maschine. Ich habe hierfür LXC Linux Container neu kennen gelernt. Das Setup unter Debian 6 brachte ein Kernelproblem mit sich, durch die keine Speicherlimits einstellbar waren. Unter Debian 7 ist das LXC Paket praktisch unbenutzbar, weil die Templates kaputt sind. Also habe ich zu, ersten Mal Ubuntu auf einem Server eingesetzt, um LXC vernünftig testen zu können. Alle wichtigen Infos finden sich im Ubuntu Server Guide: LXC. Interessant ist auch noch Limiting LXC memory usage, wobei ich bisher die Swap Usage nicht einstellen konnte (doch ein Kernel-Problem?).
nginx
Bei der Gelegenheit habe ich mich dann auch mal mit einer Alternative zu Apache befasst, nämlich nginx. Die Konfiguration ist eigentlich ganz einfach, hier die wichtigsten Links in Kürze:
- Server Block (ähnlich VirtualHost bei Apache)
- Directory Listings anzeigen
- HTTP-Authentifizierung
- HTTP Proxy
- MP4 Streaming
Und warum war der Apache nun so langsam?
Ich hatte in letzter Zeit viele Bilder geblogged, die auf der Startseite zu sehen waren. Ein Webbrowser fragt wohl mehrere Bilder gleichzeitig beim Webserver an. Der Apache war aber so eingestellt, dass er gar nicht so viele Request zugelassen hat. Das hatte ich mal so eingestellt, weil der Apache einen hohen Speicherbedarf durch das PHP vom WordPress hatte. Ich habe als erstes meine Plugins ausgemistet und später dann noch Bilder ausgelagert und damit die Ladezeiten wieder gut in den Griff bekommen.