# HTTP-Content-Caching im Apache unter Ubuntu 16.4 konfigurieren

Erfahren Sie, wie Sie die Leistung Ihrer Website verbessern können, indem Sie das HTTP-Content-Caching im Apache einrichten. Der Apache ist in der Lage, verschiedene Arten von Caching durchzuführen, einschließlich Key/Value und Datei-Caching. Dieses Tutorial konzentriert sich auf das grundlegende HTTP Content Caching, die am häufigsten verwendete Form des Caching mit Apache.

## Anforderungen

- Ein Cloud Server unter Linux (Ubuntu 16.04).
- [Apache Webserver installiert](https://www.ionos.de/digitalguide/server/konfiguration/apache-webserver-einrichten-so-wirds-gemacht/) und läuft

## 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 bereitgestellt werden können
- **Stale**: Inhalte, die nach den von Ihnen festgelegten Regeln abgelaufen 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)-Zeitstempel. Wenn die TTL abgelaufen ist, überprüft der Apache diesen Inhalt erneut, um festzustellen, ob eine aktualisierte Version verfügbar ist.

- Wenn eine aktualisierte Version verfügbar ist, holt der Apache diesen Inhalt und speichert ihn, bis die neue TTL abläuft
- Wenn die bestehende Version nicht aktualisiert wurde, aktualisiert 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 auszuwerten und festzustellen, was zu tun ist, wenn er eine Anfrage erhält. Es verwendet das mod\_cache\_disk Modul, um die Daten auf der Festplatte zu speichern.

## Einsatz des Apache Cache

Bevor Sie das HTTP-Caching konfigurieren, müssen Sie entscheiden, ob Sie den Cache entweder vor oder hinter dem Webserver einsetzen möchten.

CacheQuickHandler ist die Einstellung, die bestimmt, wo der Cache eingesetzt wird.

### Cache vor dem Webserver

Wenn CacheQuickHandler auf On gesetzt ist, wird der Cache vor der Weitergabe 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 ausgespielt wird, findet keine Authentifizierung statt.

Das bedeutet, dass, wenn Sie Inhalte haben, die von Benutzern eine Anmeldung oder Authentifizierung erfordern, diese Inhalte für jeden zugänglich sind, der sie anfordert.

Bei der Konfiguration des Apache HTTP-Cache ist zu beachten, dass **CacheQuickHandler standardmäßig eingeschaltet ist**. Wenn dies zu einem Sicherheitsproblem für Ihre Website führt, müssen Sie sicherstellen, dass das Feature ausgeschaltet ist.

### Cache hinter dem Webserver

Wenn CacheQuickHandler 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 verarbeitet werden müssen. Es ermöglicht jedoch eine Authentifizierung und ist daher am besten für alle Inhalte geeignet, bei denen sich der Benutzer vor dem Zugriff auf Inhalte anmelden oder authentifizieren muss.

Für dieses Tutorial werden wir CacheQuickHandler auf Off setzen.

## Aktivieren der Apache-Module

Um das HTTP-Caching einzurichten, installieren Sie zunächst das Paket apache2-utils:

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

Aktivieren Sie die erforderlichen Apache-Module:

```none
sudo a2enmod cache
sudo a2enmod cache_disk
sudo a2enmod expires
sudo a2enmod headers
```

Starten Sie dann den Apache neu, damit die Änderungen wirksam werden:

```none
sudo systemctl restart apache2
```

## Hinzufügen der virtuellen Host-Konfigurationen

Die folgende Konfiguration ist als Beispiel aufgeführt. Es ist ein guter Ausgangspunkt 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 Konfigurationen, die Sie hinzufügen und ändern können. Eine vollständige Liste ist auf der [Apache-Website](https://httpd.apache.org/docs/current/mod/mod_cache.html "Apache-Website") verfügbar.

Das Apache-Caching wird am besten auf Domain-für-Domain-Basis konfiguriert. Öffnen Sie die Apache-Konfigurationsdatei für die Domain mit dem Befehl:

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

---

### Hinweis

Wenn Sie keine virtuellen Apache-Hosts konfiguriert haben, bearbeiten Sie die Standardkonfigurationsdatei:

---

```none
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 Aufschrift &lt;/VirtualHost&gt; hinzu:

```none
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. Überprüfen Sie dann mit dem Befehl auf Konfigurationsfehler:

```none
sudo apachectl configtest
```

Wenn in der Datei keine Fehler vorhanden sind, starten Sie den Apache neu, damit die Änderungen wirksam werden:

```none
sudo systemctl restart apache2
```

## Testen des HTTP-Cache

Um sicherzustellen, dass das Caching-System funktioniert, überprüfen Sie das Verzeichnis, in dem der Cache gespeichert wird. Listen Sie z.B. zuerst den Inhalt des Cache-Verzeichnisses auf:

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

Wenn es sehr wenig Traffic auf Ihrem Server gibt und Sie gerade das Caching eingerichtet haben, werden Sie wahrscheinlich nur wenige Elemente sehen:

```none
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 überprüfen Sie das Verzeichnis erneut:

```none
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 Verzeichnis b als Reaktion auf das Anzeigen einer der Seiten der Website erstellt. Dieses Verzeichnis 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](http://seositecheckup.com/tools/page-cache-test-server-side-caching "SEO Site Checkup") or [Seomator](https://seomator.com/free-tools/page-cache-test "Seomator") überprüfen.


This is a markdown version of: [https://www.ionos.de/digitalguide/server/konfiguration/http-content-caching-im-apache-unter-ubuntu-164-konfigurieren/](https://www.ionos.de/digitalguide/server/konfiguration/http-content-caching-im-apache-unter-ubuntu-164-konfigurieren/) for AI/LLM consumption.