Caching und Komprimierung statischer Dateien in Nginx

So beschleunigen Sie Ihre Website und reduzieren die Server-Last.

Eine korrekte Konfiguration von Caching und Komprimierung für statische Dateien (Bilder, CSS, JavaScript, Schriften usw.) ist eine der effektivsten Methoden, um die Ladegeschwindigkeit einer Website zu verbessern, die Bandbreite zu reduzieren und die Gesamtlast auf den Server zu senken.

In diesem Artikel behandeln wir zwei wichtige Nginx-Mechanismen:

  • Die expires-Direktive zur Steuerung des Browser-Cachings
  • GZIP-Komprimierung für textbasierte Dateien

1. Browser-Caching mit expires einrichten

Die expires-Direktive teilt dem Browser mit, wie lange er eine Datei im lokalen Cache halten kann, bevor er den Server erneut anfragen muss.

Öffnen Sie die Nginx-Konfigurationsdatei Ihrer Website (üblicherweise unter /etc/nginx/conf.d/vhost.conf oder ähnlich) und fügen Sie folgenden location-Block für statische Dateien hinzu:

location ~* \.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot|mp4|webm|ogg|mp3|pdf|zip)$ {
    expires 30d;                    # Cache für 30 Tage
    add_header Cache-Control "public";
    access_log off;                 # Logging für statische Dateien deaktivieren (spart Ressourcen)
}

Empfohlene expires-Werte:

  • Bilder, Schriften und Icons: 30d oder 1y
  • CSS und JavaScript: 7d30d (bei häufig aktualisierten Dateien kürzere Werte wählen)
  • Selten geänderte Dateien: 1y

2. GZIP-Komprimierung aktivieren

GZIP-Komprimierung kann die Größe textbasierter Dateien (HTML, CSS, JS, SVG usw.) erheblich reduzieren und sorgt so für schnellere Seitenladevorgänge. Fügen Sie folgende Konfiguration in Ihren server {}-Block ein:

server {
    ...

    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;               # Komprimierungsstufe (1–9)
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_min_length 256;
    gzip_types
        text/plain
        text/css
        text/xml
        text/javascript
        application/javascript
        application/json
        application/xml
        application/rss+xml
        image/svg+xml;
}

Unsere Produkte und Dienste

WebhostingLäuft auf ultraschnellen NVMe-Laufwerken. Geeignet für Websites jeder Komplexität.
Bestellen
VPSFlexible Cloud-Infrastruktur mit vollem Root-Zugriff.
Bestellen
Dedizierte ServerBare-Metal-Server für maximale Leistung.
Bestellen

3. Einstellungen auf alle Websites anwenden (Vorlage)

Um diese Optimierungen automatisch auf alle virtuellen Hosts anzuwenden, erstellen Sie eine Vorlagendatei:

sudo nano /usr/local/ispmgr/etc/server.templ

Fügen Sie Folgendes ein:

location ~* \.(jpg|jpeg|png|gif|svg|webp|ico|css|js|woff|woff2|ttf|eot)$ {
    expires 30d;
    add_header Cache-Control "public";
    access_log off;
}

Starten Sie Nginx nach dem Speichern neu:

sudo systemctl restart nginx

Nützliche Hinweise

  • Testen Sie Ihre Konfiguration nach jeder Änderung: sudo nginx -t
  • Kombinieren Sie expires mit dem Header Cache-Control: public für optimale Performance.
  • Setzen Sie bei häufig aktualisierten Dateien wie CSS oder JavaScript keinen zu langen expires-Wert (z. B. mehr als 1 Jahr) — andernfalls sehen Nutzer veraltete Versionen über einen langen Zeitraum.
  • Auf VPS oder dedizierten Servern lässt sich die Optimierung mit FastCGI-Cache, proxy_cache oder erweiterten Browser-Caching-Regeln noch weiter ausbauen.

Hilfe

Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns