- Veröffentlicht am
- • How2-Tipps
Reverse Proxy einfach erklärt – Wie NGINX Anfragen intelligent weiterleitet
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
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/apiauf. - 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 weiterproxy_set_header→ sorgt dafür, dass Header-Informationen (z. B. IP-Adressen) korrekt weitergegeben werdenlisten 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 Verbindungenip_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.