Eine statische Website, die mit Hugo generiert wurde, ist bereits äußerst performant. Doch selbst statische Seiten können durch den gezielten Einsatz von Server-Side Caching noch schneller ausgeliefert werden. In diesem Beitrag erfahren Sie, wie Sie mithilfe von Nginx ein effizientes Caching-System für Ihre Website aufsetzen.

Warum Server-Side Caching?
Beim Server-Side Caching werden bereits gerenderte Inhalte (z. B. HTML-Dateien) temporär auf dem Server gespeichert. So kann Nginx bei wiederholten Anfragen dieselben Inhalte direkt aus dem Cache liefern – ohne das Dateisystem oder eine Upstream-Anwendung erneut zu belasten. Das spart Rechenzeit, reduziert die Latenz und verbessert die User Experience erheblich.
Voraussetzungen
- Eine funktionierende Nginx-Installation
- Eine laufende Hugo-Website (z. B. generiert in
/var/www/hugo) - Grundkenntnisse in Linux-Serverkonfiguration
Schritt 1: Cache-Verzeichnis definieren
Zunächst definieren Sie einen Ort, an dem Nginx die zwischengespeicherten Dateien ablegen soll. Fügen Sie dazu in Ihrer Nginx-Konfiguration (z. B. /etc/nginx/nginx.conf) im http-Block Folgendes hinzu:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=hugo_cache:10m max_size=1g inactive=60m use_temp_path=off;
Erklärung:
proxy_cache_pathlegt das Cache-Verzeichnis fest.keys_zonereserviert 10 MB Speicher für Cache-Metadaten.max_sizebegrenzt die Cache-Größe auf 1 GB.inactivegibt an, wie lange ungenutzte Einträge im Cache verbleiben.use_temp_path=offsorgt für effizientere I/O-Operationen.
Schritt 2: Caching im Server-Block aktivieren
Bearbeiten Sie Ihre Server-Konfiguration (z. B. /etc/nginx/sites-available/hugo.conf):
server {
listen 80;
server_name example.com;
root /var/www/hugo;
location / {
proxy_cache hugo_cache;
proxy_cache_valid 200 1h;
proxy_cache_use_stale error timeout updating;
add_header X-Cache-Status $upstream_cache_status;
try_files $uri $uri/ =404;
}
}
Erläuterung:
proxy_cache hugo_cacheaktiviert das zuvor definierte Cache-Ziel.proxy_cache_valid 200 1hlegt fest, dass erfolgreiche Antworten eine Stunde gültig sind.proxy_cache_use_staleerlaubt Nginx, alte Inhalte auszuliefern, falls der Upstream-Server nicht erreichbar ist.add_header X-Cache-Statuszeigt an, ob der Cache genutzt wurde (HIT,MISS,BYPASSusw.).
Schritt 3: Cache testen
Nach einem Neustart von Nginx:
$ sudo systemctl restart nginx
können Sie mit curl überprüfen, ob das Caching aktiv ist:
$ curl -I http://example.com
Achten Sie dabei auf den Header X-Cache-Status:
- MISS → Die Seite wurde frisch geladen und in den Cache geschrieben.
- HIT → Die Seite wurde aus dem Cache geliefert.
- EXPIRED → Der Eintrag war abgelaufen und wurde erneuert.
Schritt 4: Optional – Cache selektiv deaktivieren
Für dynamische Inhalte (z. B. Suchergebnisse oder Formulare) können Sie das Caching gezielt ausschalten:
location /search {
proxy_no_cache 1;
proxy_cache_bypass 1;
}
So wird verhindert, dass personalisierte Inhalte zwischengespeichert werden.
Fazit
Durch die Integration eines Server-Side Caches in Nginx erhöhen Sie die Performance Ihrer Hugo-Website deutlich. Gerade bei häufig aufgerufenen Seiten oder hohen Besucherzahlen amortisiert sich der geringe Konfigurationsaufwand schnell. Nginx fungiert so nicht nur als Reverse Proxy, sondern auch als intelligenter Cache-Layer, der Ihre Inhalte blitzschnell ausliefert.