Erweiterte Apache-Konfiguration

Kürzere Antwortzeiten dank Caching

Speziell gut besuchte Webseiten haben mit dem Problem zu kämpfen, dass schnell die Festplatte zum Flaschenhals wird. Apache 2.x bietet zur Lösung dieses Problems einen eigenen Cache an, der entweder den Hauptspeicher oder ein Verzeichnis der Festplatte als Zwischenspeicher nutzt.

Um den Cache zu verwenden, müssen mindestens zwei der drei vorhandenen Module beim Start von Apache geladen werden: das Zentralmodul mod_cache sowie eines der beiden Speichermodule mod_mem_cache und mod_disk_cache. Es ist ratsam, hier einen zweistufigen Ansatz zu verwenden, um einen leichten Wechsel zwischen den beiden Modulen zu ermöglichen. Dazu ist zum einen die Parameterliste der Variablen APACHE_MODULES in der Steuerdatei /etc/sysconfig/apache2 um den Wert "cache" für das Zentralmodul zu erweitern. In die Konfigurationsdatei des Webservers (/etc/apache2/httpd.conf) kommt dann noch ein Befehlsblock, der zwischen Caching im Speicher und Caching auf Disk umschaltet:

<IfModule mod_cache.c>
#LoadModule disk_cache_module /usr/lib/apache2-prefork/mod_disk_cache.so
<IfModule mod_disk_cache.c>
CacheRoot /tmp/cacheroot
CacheSize 256
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
</IfModule>

LoadModule mem_cache_module /usr/lib/apache2-prefork/mod_mem_cache.so
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
</IfModule>
</IfModule>

Je nachdem, welche der beiden mit LoadModule beginnenden Anweisungen aktiviert - also nicht per Kommentarzeichen "#" abgeschaltet - ist, verwendet der Webserver nun das Caching für alle von ihm bereitgestellten Seiten. Sollte dies bei einzelnen Webauftritten zu Problemen führen, lässt sich das Caching innerhalb der Anweisungen für den betroffenen virtuellen Host gezielt abschalten:

<IfModule mod_cache.c>
CacheDisable /
</IfModule>