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:
30doder1y - CSS und JavaScript:
7d—30d(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
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
expiresmit dem HeaderCache-Control: publicfü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!