Caching ist ein entscheidender Faktor für die Performance moderner Webanwendungen. Nginx bietet leistungsfähige Mechanismen, um Inhalte zwischenzuspeichern und Anfragen effizient zu bedienen. Mit einem korrekt konfigurierten Proxy Cache lassen sich Serverlast reduzieren, Ladezeiten verkürzen und die Nutzererfahrung verbessern. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie Nginx Proxy Caching eingerichtet und optimiert wird.
Voraussetzungen
Bevor der Proxy Cache eingerichtet wird, sollten die grundlegenden Voraussetzungen auf dem Server erfüllt sein.
- Linux-Server mit Nginx installiert (Ubuntu 22.04+, CentOS 8+)
- Root- oder Sudo-Rechte für Konfiguration und Installation
- HTTPS-Zertifikate (optional, für sichere Webseiten)
- Zugriff auf die Nginx-Konfigurationsdateien
System vorbereiten
Ein aktuelles System stellt sicher, dass alle Pakete und Abhängigkeiten korrekt funktionieren.
System aktualisieren
sudo apt update
sudo apt upgrade -y
Für CentOS/RHEL:
sudo yum update -y
Notwendige Pakete installieren
sudo apt install wget curl git unzip -y
Proxy Cache Verzeichnis anlegen
Der Proxy Cache benötigt einen Speicherort auf dem Server, um zwischengespeicherte Inhalte abzulegen.
sudo mkdir -p /var/cache/nginx/proxy_cache
sudo chown -R www-data:www-data /var/cache/nginx/proxy_cache
sudo chmod -R 700 /var/cache/nginx/proxy_cache
Proxy Cache in Nginx konfigurieren
Die Konfiguration erfolgt in der Hauptdatei /etc/nginx/nginx.conf oder in einem Serverblock.
Cache Zone definieren
http {
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
}
- levels: Verzeichnisstruktur für Cache-Dateien
- keys_zone: Name und Speichergröße der Cache-Zone
- max_size: Maximale Größe des Caches
- inactive: Zeitspanne, nach der inaktive Inhalte gelöscht werden
- use_temp_path: Optimierung der Zwischenspeicherung
Serverblock mit Proxy Cache
server { listen 80; server_name meinewebsite.de www.meinewebsite.de;location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
add_header X-Proxy-Cache $upstream_cache_status;
}}
Erklärung wichtiger Parameter
- proxy_pass: Ziel-Backend-Server
- proxy_set_header: Header für korrekte Weiterleitung und Logging
- proxy_cache: Name der Cache-Zone
- proxy_cache_valid: Zeitspanne, für die Inhalte gecached werden
- proxy_cache_use_stale: Nutzung von veralteten Inhalten bei Backend-Fehlern
- X-Proxy-Cache Header: Statusanzeige (HIT, MISS, BYPASS)
Cache kontrollieren und leeren
Manchmal müssen Inhalte aktualisiert oder der Cache geleert werden.
Cache-Verzeichnis leeren
sudo rm -rf /var/cache/nginx/proxy_cache/*
sudo systemctl reload nginx
Cache Status prüfen
curl -I http://meinewebsite.de/
# X-Proxy-Cache: HIT / MISS
Performance-Optimierung
Durch zusätzliche Parameter kann der Proxy Cache weiter optimiert werden.
Cache-Control Header nutzen
location / {
proxy_pass http://127.0.0.1:8080;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header Cache-Control "public, max-age=600";
}
Größe und Levels anpassen
- max_size je nach Server-Ressourcen einstellen (z.B. 5G)
- levels anpassen, um Dateisystemüberlastung zu vermeiden
HTTPS und Proxy Cache
Bei verschlüsseltem Traffic muss Nginx als TLS-Termination arbeiten, um Proxy Caching zu ermöglichen.
Serverblock für HTTPS
server { listen 443 ssl http2; server_name meinewebsite.de;ssl_certificate /etc/letsencrypt/live/meinewebsite.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meinewebsite.de/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_cache my_cache;
proxy_cache_valid 200 10m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
}}
Monitoring und Logging
Überwachung des Proxy Cache hilft, die Performance zu bewerten und Probleme frühzeitig zu erkennen.
Cache-Status im Log
log_format cache_status '$remote_addr - $upstream_cache_status [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'; access_log /var/log/nginx/access.log cache_status;Analysetools
- tail -f /var/log/nginx/access.log
- nginx-cache-purge Tools für detaillierte Analyse
Netzwerk und Subnetze
Die Effizienz des Caches hängt auch von der Netzwerkarchitektur ab. Korrekte IPs, Subnetze und Gateway-Einstellungen sind entscheidend.
Subnetzberechnung
Beispiel: Server-IP 192.168.80.25/24
<math>
Subnetzadresse = 192.168.80.25 & 255.255.255.0 = 192.168.80.0
Broadcastadresse = 192.168.80.0 | ~255.255.255.0 = 192.168.80.255
</math>
Netzwerkinterface konfigurieren
sudo nano /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.80.25/24
gateway4: 192.168.80.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
Best Practices
- Proxy Cache nur für statische oder semi-statische Inhalte verwenden
- Cache-Zeiträume abhängig von Aktualität der Inhalte einstellen
- Regelmäßige Überwachung von Cache-Hits und -Misses
- SSL-Termination für HTTPS und Caching kombinieren
- Server-Ressourcen beobachten, um Cache-Größe optimal anzupassen
- Logs analysieren, um fehlerhafte Weiterleitungen oder Cache-Probleme zu identifizieren
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.










