Erfahren Sie, wie Sie die Leistung Ihrer Website ver­bes­sern können, indem Sie das HTTP-Content-Caching im Apache ein­rich­ten. Der Apache ist in der Lage, ver­schie­de­ne Arten von Caching durch­zu­füh­ren, ein­schließ­lich Key/Value und Datei-Caching. Dieses Tutorial kon­zen­triert sich auf das grund­le­gen­de HTTP Content Caching, die am häu­figs­ten ver­wen­de­te Form des Caching mit Apache.

An­for­de­run­gen

Cloud Server
Leis­tungs­star­ke Kon­fi­gu­ra­tio­nen
  • On-Demand ska­lier­bar & Root-Zugriff inklusive
  • Hoch­ver­füg­ba­re Server-Plattform
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren am Standort Deutsch­land

Apache-Cache-Zustände

Das HTTP-Cache-System des Apache teilt seine Inhalte in drei Zustände ein:

  • Fresh: Neue Inhalte, die ohne Prüfung be­reit­ge­stellt werden können
  • Stale: Inhalte, die nach den von Ihnen fest­ge­leg­ten Regeln ab­ge­lau­fen sind und die auf eine neue Kopie überprüft werden müssen
  • Missing: Inhalt, der fehlt

Wenn der Apache eine Anfrage erhält, überprüft er den Time To Live (TTL)-Zeit­stem­pel. Wenn die TTL ab­ge­lau­fen ist, überprüft der Apache diesen Inhalt erneut, um fest­zu­stel­len, ob eine ak­tua­li­sier­te Version verfügbar ist.

  • Wenn eine ak­tua­li­sier­te Version verfügbar ist, holt der Apache diesen Inhalt und speichert ihn, bis die neue TTL abläuft
  • Wenn die be­stehen­de Version nicht ak­tua­li­siert wurde, ak­tua­li­siert der Apache die TTL in der Datei und stellt die Datei weiterhin zur Verfügung, bis die TTL abläuft

Der Apache verwendet das mod_cache Modul, um die TTL auf Inhalte aus­zu­wer­ten und fest­zu­stel­len, was zu tun ist, wenn er eine Anfrage erhält. Es verwendet das mod_cache_disk Modul, um die Daten auf der Fest­plat­te zu speichern.

Einsatz des Apache Cache

Bevor Sie das HTTP-Caching kon­fi­gu­rie­ren, müssen Sie ent­schei­den, ob Sie den Cache entweder vor oder hinter dem Webserver einsetzen möchten.

Cache­Quick­Hand­ler ist die Ein­stel­lung, die bestimmt, wo der Cache ein­ge­setzt wird.

Cache vor dem Webserver

Wenn Cache­Quick­Hand­ler auf On gesetzt ist, wird der Cache vor der Wei­ter­ga­be an Apache überprüft.

Dies ist ein sehr schneller Weg, um Inhalte zur Verfügung zu stellen, da Anfragen nicht darauf warten müssen, dass der Apache die Anfrage beendet. Dies ist jedoch nicht sicher. Da der gesamte Inhalt der Website vor dem Webserver aus­ge­spielt wird, findet keine Au­then­ti­fi­zie­rung statt.

Das bedeutet, dass, wenn Sie Inhalte haben, die von Benutzern eine Anmeldung oder Au­then­ti­fi­zie­rung erfordern, diese Inhalte für jeden zu­gäng­lich sind, der sie anfordert.

Bei der Kon­fi­gu­ra­ti­on des Apache HTTP-Cache ist zu beachten, dass Cache­Quick­Hand­ler stan­dard­mä­ßig ein­ge­schal­tet ist. Wenn dies zu einem Si­cher­heits­pro­blem für Ihre Website führt, müssen Sie si­cher­stel­len, dass das Feature aus­ge­schal­tet ist.

Cache hinter dem Webserver

Wenn Cache­Quick­Hand­ler auf Off gesetzt ist, wird der Request durch den Apache geleitet, bevor er aus dem Cache geholt wird.

Diese Methode ist nicht so schnell wie das Setzen des Caches vor den Webserver, da Anfragen über den Apache ver­ar­bei­tet werden müssen. Es er­mög­licht jedoch eine Au­then­ti­fi­zie­rung und ist daher am besten für alle Inhalte geeignet, bei denen sich der Benutzer vor dem Zugriff auf Inhalte anmelden oder au­then­ti­fi­zie­ren muss.

Für dieses Tutorial werden wir Cache­Quick­Hand­ler auf Off setzen.

Cloud Backup powered by Acronis
Mi­ni­mie­ren Sie Aus­fall­zei­ten mit unserem Kom­plett­schutz
  • Au­to­ma­tisch: Backups und Recovery
  • Intuitiv: Planung und Ma­nage­ment
  • In­tel­li­gent: KI-basierter Be­dro­hungs­schutz
  • Inkl. 300,- € Start­gut­ha­ben im 1. Monat

Ak­ti­vie­ren der Apache-Module

Um das HTTP-Caching ein­zu­rich­ten, in­stal­lie­ren Sie zunächst das Paket apache2-utils:

sudo apt-get update
sudo apt-get install apache2-utils

Ak­ti­vie­ren Sie die er­for­der­li­chen Apache-Module:

sudo a2enmod cache
sudo a2enmod cache_disk
sudo a2enmod expires
sudo a2enmod headers

Starten Sie dann den Apache neu, damit die Än­de­run­gen wirksam werden:

sudo systemctl restart apache2

Hin­zu­fü­gen der vir­tu­el­len Host-Kon­fi­gu­ra­tio­nen

Die folgende Kon­fi­gu­ra­ti­on ist als Beispiel auf­ge­führt. Es ist ein guter Aus­gangs­punkt für einen einfachen HTTP-Cache, der sich hinter dem Webserver befindet, und bei dem der Inhalt 5 Minuten nach dem letzten Zugriff abläuft.

Es gibt viele Kon­fi­gu­ra­tio­nen, die Sie hin­zu­fü­gen und ändern können. Eine voll­stän­di­ge Liste ist auf der Apache-Website verfügbar.

Das Apache-Caching wird am besten auf Domain-für-Domain-Basis kon­fi­gu­riert. Öffnen Sie die Apache-Kon­fi­gu­ra­ti­ons­da­tei für die Domain mit dem Befehl:

sudo nano /etc/apache2/sites-available/example.com.conf
Hinweis

Wenn Sie keine vir­tu­el­len Apache-Hosts kon­fi­gu­riert haben, be­ar­bei­ten Sie die Stan­dard­kon­fi­gu­ra­ti­ons­da­tei:

sudo nano /etc/apache2/sites-available/000-default.conf

Scrollen Sie zum Ende der Datei und fügen Sie die folgenden Zeilen über der Zeile mit der Auf­schrift </Vir­tu­al­Host> hinzu:

CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheIgnoreHeaders Set-Cookie
<Location />
    CacheEnable disk
    CacheHeader on
    CacheDefaultExpire 800
    CacheMaxExpire 64000
    CacheIgnoreNoLastMod On
    ExpiresActive on
    ExpiresDefault A300
</Location>

Speichern und beenden Sie die Datei. Über­prü­fen Sie dann mit dem Befehl auf Kon­fi­gu­ra­ti­ons­feh­ler:

sudo apachectl configtest

Wenn in der Datei keine Fehler vorhanden sind, starten Sie den Apache neu, damit die Än­de­run­gen wirksam werden:

sudo systemctl restart apache2

Testen des HTTP-Cache

Um si­cher­zu­stel­len, dass das Caching-System funk­tio­niert, über­prü­fen Sie das Ver­zeich­nis, in dem der Cache ge­spei­chert wird. Listen Sie z.B. zuerst den Inhalt des Cache-Ver­zeich­nis­ses auf:

ls -la /var/cache/apache2/mod_cache_disk/

Wenn es sehr wenig Traffic auf Ihrem Server gibt und Sie gerade das Caching ein­ge­rich­tet haben, werden Sie wahr­schein­lich nur wenige Elemente sehen:

user@localhost:/var/www/html# ls -la /var/cache/apache2/mod_cache_disk/
total 20    
drwxr-xr-x 5 www-data www-data 4096 Feb  1 21:43 .
drwxr-xr-x 3 root     root     4096 Jan  6 03:20 ..
drwx------ 3 www-data www-data 4096 Feb  1 21:42 2
drwx------ 3 www-data www-data 4096 Feb  1 21:42 T

Stöbern Sie auf Ihrer Website und über­prü­fen Sie das Ver­zeich­nis erneut:

user@localhost:/var/www/html# ls -la /var/cache/apache2/mod_cache_disk/

insgesamt 20

drwxr-xr-xr-x 5 www-Daten www-Daten www-Daten 4096 Feb 1 21:45 .

drwxr-xr-xr-x 3 root root 4096 Jan 6 03:20 ...

drwx------ 3 www-Daten www-Daten www-Daten 4096 Feb 1 21:42 2 2

drwx------ 3 www-Daten www-Daten www-Daten 4096 Feb 1 21:43 b

drwx------ 3 www-Daten www-Daten www-Daten 4096 Feb 1 21:42 T

Im obigen Beispiel wurde das Ver­zeich­nis b als Reaktion auf das Anzeigen einer der Seiten der Website erstellt. Dieses Ver­zeich­nis enthält den Cache des Servers für die Seite.

Sie können auch das Caching Ihrer Website mit einem Tool wie dem auf der SEO Site Checkup-Website or Seomator über­prü­fen.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on
Zum Hauptmenü