⚙️ DevOps 15. Juni 2026 · 10 Min Lesezeit

Nginx Reverse Proxy konfigurieren – Einsteiger-Guide 2026

Ein Reverse Proxy ist das Schweizer Taschenmesser der Server-Administration: Er leitet Anfragen an Backend-Dienste weiter, terminiert SSL, verteilt Last und schützt deine Infrastruktur. In diesem Guide zeige ich dir, wie du Nginx als Reverse Proxy konfigurierst.

— Anzeige —

Google AdSense Platzhalter

Was ist ein Reverse Proxy?

Ein Reverse Proxy ist ein Mittelsmann zwischen dem Client (Browser) und einem oder mehreren Backend-Servern. Während ein Forward Proxy die Anfragen der Clients nach außen bündelt, sitzt der Reverse Proxy vor deinen Servern und verteilt eingehende Anfragen. Nginx ist aufgrund seiner hohen Performance, des geringen Speicherverbrauchs und der flexiblen Konfiguration der beliebteste Reverse Proxy für Linux-Server. Er wird unter anderem von Netflix, GitHub und Airbnb eingesetzt.

Warum Nginx als Reverse Proxy?

  • Performance: Nginx verarbeitet tausende gleichzeitige Verbindungen mit minimalem Ressourcenverbrauch – das event-getriebene Modell macht es möglich.
  • SSL-Terminierung: Nginx übernimmt die SSL-Verschlüsselung und leitet entschlüsselten Traffic an die Backends weiter.
  • Load Balancing: Verteile Anfragen auf mehrere Backend-Server – round-robin, least connections oder IP-hash.
  • Caching: Statische Inhalte werden von Nginx zwischengespeichert, Backends werden entlastet.
  • Sicherheit: Verstecke Backend-Strukturen, setze Zugriffsbeschränkungen und Rate-Limits.

Grundlegende Nginx Reverse Proxy Konfiguration

Die folgende Konfiguration leitet alle Anfragen an Port 80 an einen lokalen Backend-Service auf Port 3000 weiter. Erstelle eine neue Server-Datei unter /etc/nginx/sites-available/myapp:

server {
    listen 80;
    server_name example.de www.example.de;

    location / {
        proxy_pass http://localhost:3000;
        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;
    }
}

Aktiviere die Seite mit ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/, teste die Konfiguration mit nginx -t und lade Nginx neu: systemctl reload nginx. Schon leitet dein Server alle Anfragen an deine Anwendung weiter.

SSL-Terminierung mit Let's Encrypt

Für eine sichere Verbindung per HTTPS ist ein SSL-Zertifikat Pflicht. Mit Certbot und Let's Encrypt erhältst du kostenlose, automatisierte Zertifikate. Zuerst installierst du Certbot, dann führst du folgenden Befehl aus:

certbot --nginx -d example.de -d www.example.de

Certbot passt die Nginx-Konfiguration automatisch an, richtet die Weiterleitung von HTTP auf HTTPS ein und kümmert sich um die automatische Verlängerung. Deine finale Konfiguration sieht dann so aus:

Direktive Wert Erklärung
listen 443 ssl;http2HTTPS mit HTTP/2-Unterstützung
ssl_certificate/etc/letsencrypt/live/...Pfad zum Let's Encrypt Zertifikat
ssl_certificate_key/etc/letsencrypt/live/...Pfad zum privaten Schlüssel
return 301https://$server_name$request_uriHTTP-zu-HTTPS-Weiterleitung

Load Balancing mit mehreren Backends

Ein großer Vorteil von Nginx als Reverse Proxy ist die integrierte Load-Balancing-Funktion. Verteile Anfragen auf mehrere identische Backend-Server:

upstream backend {
    server 10.0.1.2:3000 weight=3;
    server 10.0.1.3:3000 weight=2;
    server 10.0.1.4:3000 backup;
}

server {
    listen 80;
    server_name example.de;

    location / {
        proxy_pass http://backend;
    }
}

Nginx unterstützt verschiedene Load-Balancing-Methoden:

Methode Beschreibung
round-robin (Standard)Anfragen werden gleichmäßig verteilt
least_connAn den Server mit den wenigsten Verbindungen
ip_hashClient-IP-basiert – Sitzungen bleiben erhalten
hash $request_uriBasierend auf einem beliebigen Schlüssel

Caching für bessere Performance

Nginx kann Antworten von Backends zwischenspeichern und statische Inhalte direkt ausliefern. Das entlastet deine Anwendungsserver und beschleunigt die Auslieferung enorm:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m inactive=60m;

server {
    location / {
        proxy_cache mycache;
        proxy_pass http://backend;
        proxy_cache_valid 200 302 60m;
        proxy_cache_valid 404 1m;
    }

    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 365d;
        add_header Cache-Control "public, immutable";
    }
}

Sicherheitstipps für deinen Nginx Reverse Proxy

  • Verstecke die Nginx-Version mit server_tokens off;
  • Setze HTTP-Header wie X-Content-Type-Options: nosniff und X-Frame-Options: DENY
  • Beschränke erlaubte HTTP-Methoden: limit_except GET POST { deny all; }
  • Rate-Limiting mit limit_req_zone und limit_req
  • Verwende moderne SSL-Ciphers und deaktiviere unsichere Protokolle (TLS 1.0/1.1)

Fehlerbehebung & Log-Analyse

Wenn etwas nicht funktioniert, helfen die Nginx-Logs weiter. Die wichtigsten Log-Dateien sind /var/log/nginx/access.log für alle Anfragen und /var/log/nginx/error.log für Fehlermeldungen. Mit dem Befehl tail -f /var/log/nginx/error.log verfolgst du Fehler live mit. Typische Probleme sind falsche proxy_pass-URLs, vergessene Semikolons oder Firewall-Regeln, die den Zugriff auf den Backend-Port blockieren.

Fazit

Nginx als Reverse Proxy ist eine der wertvollsten Techniken in der Server-Administration. Die Konfiguration ist nach kurzer Einarbeitungszeit gut verständlich, und die Vorteile – SSL-Terminierung, Load Balancing, Caching und Sicherheit – sind enorm. Mit diesem Guide hast du alle Grundlagen, um deinen eigenen Nginx Reverse Proxy für 2026 produktiv einzusetzen.

⚙️ Server & Nginx Tools

👉 Bei Amazon entdecken

— Anzeige —

Google AdSense Platzhalter (Ende)