Caching With Apache’s mod_cache On Debian Lenny
Version 1.0
Autor: Falko Timme <ft [at] falkotimme [dot] com>
Last edited 04/21/2010
Diese Anleitung erklärt wie man seine Webseiteninhalte zwischenspeichern kann, indem man Apaches mod_cache auf einem Debian Lenny benutzt. Wenn man eine viel besuchte, dynamische Webseite hat, das viele Datenbank-Anfragen bei jedem Zugriff generiert, kommt es zu einer erhöhten Serverauslastung. Diese kann erheblich gesenkt werden, indem die Inhalte für einige Minuten oder mehr zwischengespeichert werden, abhängig davon wie häufig der Webseiteninhalt aktualisiert wird.
Diese Anleitung ist ohne jede Gewähr.
1 Vorbemerkung
Ich gehe davon aus, dass Du bereits eine funktionierende Apache2 Installation hast (Apache 2.2.x - für die Vorabversionen wird cache-Mod allerdings als exeprimentell eingestuft) aus den Debian Paketen. Wenn die Apache Version in den Debian Paketen die 2.2.9 sein sollte, ist das perfekt.
Ich verwende hier den Dokumenten root /var/www für meinen vhost Test. Bitte passe dieses an, sollte Dein Dokument root anders sein.
2 mod_cache aktivieren
mod_cache hat zwei Untermodule, die den Zwischenspeicher verwalten: mod_disk_cache (um Inhalte auf der Festplatte zu speichern) und mod_mem_cache (um Inhalte im Cahce zu speichern, was schneller als die Festplatten-Version ist). Nachdem Du Dich für eine der Methoden entschieden hast, gehe weiter zu Kapitel 2.1 (mod_disk_cache) oder 2.2 (mod_mem_cache).
2.1 mod_disk_cache
Die mod_disk_cache Konfiguration ist in /etc/apache2/mods-available/disk_cache.conf gespeichert, also editieren wir diese:
vi /etc/apache2/mods-available/disk_cache.conf
Die Zeile CacheEnable disk / unbedingt auskommentieren, so daß die minimale Konfiguration folgendermaßen aussieht:
<IfModule mod_disk_cache.c>
# cache cleaning is done by htcacheclean, which can be configured in
# /etc/default/apache2
#
# For further information, see the comments in that file,
# /usr/share/doc/apache2.2-common/README.Debian, and the htcacheclean(8)
# man page.
# This path must be the same as the one in /etc/default/apache2
CacheRoot /var/cache/apache2/mod_disk_cache
# This will also cache local documents. It usually makes more sense to
# put this into the configuration for just one virtual host.
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
</IfModule>
|
Du findest die Erklärungen für diese und andere Konfigurationsoptionen auf http://httpd.apache.org/docs/2.2/mod/mod_disk_cache.html.
Nun können wir mod_cache und mod_disk_cache aktivieren:
a2enmod cache
a2enmod disk_cache
/etc/init.d/apache2 restart
Um sicher zu sein, dass unser Cache Verzeichnis /var/cache/apache2/mod_disk_cache mit der Zeit nicht zu voll wird, müssen wir es mit dem htcacheclean Befehl zwischendurch aufräumen bzw. leeren. Dieses Befehl ist Teil des apache2-utils Pakets, welches wir folgendermaßen installieren:
aptitude install apache2-utils
Hiernach können wir htcacheclean als daemon starten:
htcacheclean -d30 -n -t -p /var/cache/apache2/mod_disk_cache -l 100M -i
Das wird den Zwischenspeicherverzeichnis (cache) alle 30 Minuten leeren und damit dafür sorgen, dass er nicht größer als 100 MB wird. Um mehr über htcacheclean zu erfahren, schau Dir dieses an:
man htcacheclean
Damit htcacheclean nicht jedesmal beim (Neu-)Start manuell gestartet werden muss,editieren wir die Datei /etc/rc.local…
vi /etc/rc.local
… und fügen folgende Zeile hinzu, genau vor der exit 0 Zeile:
[...] /usr/sbin/htcacheclean -d30 -n -t -p /var/cache/apache2/mod_disk_cache -l 100M -i [...] |
Dieser Befehl wird htcacheclean automatisch starten, jedesmal wenn der Server (neu-)startet.
2.2 mod_mem_cache
Die Konfiguration von mod_mem_cache findet man in /etc/apache2/mods-available/mem_cache.conf:
vi /etc/apache2/mods-available/mem_cache.conf
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
</IfModule>
|
Das ist die Standardkonfiguration; wenn Du möchtest, kannst Du diese ändern. Eine Liste der Konfigurationsbefehle für mod_mem_cache findest Du hier: http://httpd.apache.org/docs/2.2/mod/mod_mem_cache.html.
Nun aktivieren mod_cache und mod_mem_cache wie folgt:
a2enmod cache
a2enmod mem_cache
/etc/init.d/apache2 restart
Das ist schon fast, aber nur fast alles! Mit mod_mem_cache wirst Du nie wieder irgendwelche Verzeichnisse aufräumen müssen.
- Mit Apache's mod_cache auf Debian Lenny Daten zwischenspeichern - Seite 1
- Mit Apache's mod_cache auf Debian Lenny Daten zwischenspeichern - Seite 2


