open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

Reverse Proxy einfach erklärt – Wie NGINX Anfragen intelligent weiterleitet

Autor
Reverse Proxy einfach erklärt – Wie NGINX Anfragen intelligent weiterleitet

Der Begriff Reverse Proxy taucht überall dort auf, wo Webserver, APIs und Microservices zusammenarbeiten. Doch was genau macht ein Reverse Proxy – und warum ist NGINX in diesem Bereich so beliebt?

In diesem Artikel erfährst du, was ein Reverse Proxy ist, wie NGINX Anfragen verteilt und absichert, und wie du selbst in wenigen Minuten eine Reverse-Proxy-Konfiguration einrichtest.

1. Was ist ein Reverse Proxy?

Ein Reverse Proxy ist ein Server, der zwischen den Clients (z. B. Browsern) und den Backend-Servern (z. B. Web-Apps, Datenbanken, APIs) steht. Er nimmt alle Anfragen entgegen, leitet sie an den passenden Zielserver weiter und gibt die Antwort wieder an den Benutzer zurück.

Beispiel:

  • Ein Besucher ruft https://meine-seite.de/api auf.
  • Der NGINX-Server nimmt die Anfrage entgegen.
  • Er leitet sie an einen internen Server weiter, z. B. http://127.0.0.1:3000.
  • Die Antwort wird über NGINX zurück an den Benutzer gesendet.

Für den Besucher wirkt es, als käme alles von einem einzigen Server – obwohl im Hintergrund viele Systeme arbeiten.

2. Warum Reverse Proxy?

Ein Reverse Proxy ist mehr als nur ein Weiterleiter – er übernimmt gleich mehrere wichtige Aufgaben:

Vorteil Beschreibung
Lastverteilung Verteilung eingehender Anfragen auf mehrere Server (Load Balancing)
Sicherheit Verbirgt interne Server und schützt vor direkten Zugriffen
Caching Speichert häufige Antworten zwischen – reduziert Serverlast
SSL/TLS-Terminierung Übernimmt HTTPS-Verschlüsselung zentral
Kompression & Optimierung Beschleunigt Datenübertragung
Header-Manipulation Setzt oder entfernt HTTP-Header nach Bedarf

Kurz gesagt: Ein Reverse Proxy ist der Traffic-Manager deines Webservers – er steuert, beschleunigt und schützt deinen gesamten Datenfluss.

3. NGINX als Reverse Proxy – das Prinzip

NGINX ist von Natur aus ideal für den Einsatz als Reverse Proxy geeignet. Dank seiner asynchronen Architektur kann er tausende gleichzeitige Verbindungen effizient handhaben.

Das Grundprinzip:

Client → NGINX (Reverse Proxy) → Web-App oder Backend-Server

So lassen sich mehrere Anwendungen oder APIs unter einer Domain betreiben – z. B.:

  • / → liefert deine Hauptwebsite
  • /api/ → leitet an Node.js-Server weiter
  • /media/ → geht an einen separaten Datei-Server

4. Beispielkonfiguration: Reverse Proxy mit NGINX

Hier eine minimalistische Beispielkonfiguration:

server {
    listen 80;
    server_name meine-seite.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;
    }
}

Erklärung:

  • proxy_pass → leitet Anfragen an den Backend-Server weiter
  • proxy_set_header → sorgt dafür, dass Header-Informationen (z. B. IP-Adressen) korrekt weitergegeben werden
  • listen 80 → der Proxy lauscht auf Port 80

Wenn du HTTPS nutzt, kannst du zusätzlich SSL aktivieren oder Let’s Encrypt integrieren.

5. Reverse Proxy mit mehreren Backends (Load Balancing)

Du kannst NGINX auch verwenden, um Anfragen auf mehrere Backend-Server zu verteilen – etwa für hohe Auslastung oder Hochverfügbarkeit:

upstream backend_cluster {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name meine-seite.de;

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

NGINX verteilt die Anfragen standardmäßig per Round-Robin-Verfahren – gleichmäßig auf alle Server.

Weitere Optionen:

  • least_conn; → bevorzugt Server mit den wenigsten Verbindungen
  • ip_hash; → hält Benutzer bei demselben Server (Session-Stickiness)

6. Reverse Proxy + SSL/TLS

Eine der beliebtesten Kombinationen: NGINX übernimmt die HTTPS-Verschlüsselung (TLS-Terminierung), während die Backend-Server unverschlüsselt (intern) weiterarbeiten.

Beispiel:

server {
    listen 443 ssl http2;
    server_name meine-seite.de;

    ssl_certificate /etc/letsencrypt/live/meine-seite.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/meine-seite.de/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

Damit läuft die externe Verbindung sicher über HTTPS – intern bleibt die Kommunikation leichtgewichtig über HTTP.

7. Reverse Proxy vs. Forward Proxy

Der Unterschied ist einfach, aber entscheidend:

Proxy-Typ Richtung Beschreibung
Forward Proxy Client → Internet Wird z. B. von Unternehmen verwendet, um interne Benutzer über einen Proxy ins Internet zu schicken
Reverse Proxy Internet → Server Wird von Websites genutzt, um externe Benutzeranfragen an interne Server weiterzuleiten

Kurz gesagt:

  • Ein Forward Proxy schützt den Benutzer.
  • Ein Reverse Proxy schützt den Server.

8. Typische Anwendungsfälle

NGINX als Reverse Proxy wird häufig eingesetzt bei:

  • Microservice-Architekturen (API-Gateway)
  • Docker-Umgebungen (Routing zu Containern)
  • Nextcloud, WordPress, Node.js, Flask & Django
  • Cloud- und CDN-Systemen
  • Sicherheitslösungen mit Web Application Firewall (WAF)

Ein Reverse Proxy ist das Gehirn deines Web-Traffics. Mit NGINX kannst du Anfragen intelligent steuern, absichern und skalieren – alles mit nur wenigen Zeilen Konfiguration.

Ob du eine einzelne App oder ein komplettes Microservice-System betreibst: NGINX sorgt für Sicherheit, Performance und Kontrolle in deinem Netzwerk.