Reverse Proxy
Ein Reverse Proxy ist ein Server, der zwischen Clients (z.B. Webbrowsern) und Backend-Servern steht. Er nimmt eingehende Anfragen entgegen und leitet sie an die dahinterliegenden Server weiter. Dabei erscheint der Reverse Proxy nach aussen wie der eigentliche Webserver, obwohl er die Anfragen nur vermittelt.
Anders als ein klassischer Forward Proxy, der Clients schuetzt und deren Identitaet verbirgt, schuetzt ein Reverse Proxy die Server-Infrastruktur. Er bildet eine Schutzschicht, sodass kein Client direkt mit den Origin-Servern kommuniziert.
Wie funktioniert ein Reverse Proxy?
Der Ablauf einer Anfrage ueber einen Reverse Proxy folgt einem klar definierten Muster. Wenn du eine Website aufrufst, die einen Reverse Proxy nutzt, kommunizierst du nie direkt mit dem eigentlichen Webserver.
- Anfrage abfangen: Der Client sendet eine HTTP-Anfrage an die oeffentliche IP-Adresse. Der Reverse Proxy empfaengt diese Anfrage.
- Anfrage analysieren: Der Proxy prueft die Anfrage und kann sie bei Bedarf modifizieren, z.B. durch Hinzufuegen von Headern oder Sicherheitspruefungen.
- Weiterleitung: Die Anfrage wird an einen geeigneten Backend-Server weitergeleitet. Bei mehreren Servern entscheidet der Proxy anhand von Load-Balancing-Regeln.
- Antwort empfangen: Der Backend-Server verarbeitet die Anfrage und sendet die Antwort zurueck an den Reverse Proxy.
- Antwort ausliefern: Der Proxy kann die Antwort komprimieren, cachen oder modifizieren und liefert sie dann an den Client aus.
Dieser gesamte Vorgang geschieht innerhalb von Millisekunden. Fuer den Benutzer ist der Reverse Proxy voellig transparent - er merkt nicht, dass ein Vermittler zwischengeschaltet ist.
Hauptfunktionen eines Reverse Proxys
Reverse Proxys uebernehmen verschiedene wichtige Aufgaben in modernen IT-Infrastrukturen. Die folgenden Funktionen machen sie zu einem zentralen Bestandteil vieler Webarchitekturen.
Load Balancing
Load Balancing ist eine der wichtigsten Funktionen eines Reverse Proxys. Bei hohem Traffic verteilt er eingehende Anfragen auf mehrere Backend-Server, um Ueberlastungen zu vermeiden. So wird sichergestellt, dass kein einzelner Server zum Flaschenhals wird.
- Round Robin: Anfragen werden reihum an alle Server verteilt
- Least Connections: Der Server mit den wenigsten aktiven Verbindungen erhaelt die naechste Anfrage
- IP Hash: Anfragen vom gleichen Client gehen immer an denselben Server
- Weighted: Server mit mehr Kapazitaet erhalten mehr Anfragen
SSL/TLS-Terminierung
Bei der SSL/TLS-Terminierung uebernimmt der Reverse Proxy die gesamte Verschluesselung und Entschluesselung des HTTPS-Traffics. Die Backend-Server muessen sich nicht mehr um TLS-Zertifikate kuemmern, was die Konfiguration vereinfacht und deren Performance verbessert.
Der Proxy verwaltet alle SSL-Zertifikate zentral. Die Kommunikation zwischen Proxy und internen Servern kann dann unverschluesselt ueber das sichere interne Netzwerk erfolgen - oder optional mit internen Zertifikaten verschluesselt werden.
Caching
Ein Reverse Proxy kann haeufig angefragte Inhalte zwischenspeichern. Statische Ressourcen wie Bilder, CSS-Dateien oder JavaScript werden direkt aus dem Cache ausgeliefert, ohne dass der Backend-Server belastet wird. Das reduziert die Antwortzeiten erheblich und entlastet die Infrastruktur.
Sicherheit
Reverse Proxys bilden eine zusaetzliche Sicherheitsschicht vor deinen Backend-Servern. Sie koennen verschiedene Schutzfunktionen uebernehmen:
- IP-Maskierung: Die echten IP-Adressen der Backend-Server bleiben verborgen
- Traffic-Filterung: Verdaechtige oder schaedliche Anfragen werden blockiert
- DDoS-Schutz: Angriffe werden abgefangen, bevor sie die Server erreichen
- Web Application Firewall (WAF): Schutz vor Angriffen wie SQL-Injection oder Cross-Site-Scripting
- Rate Limiting: Begrenzung der Anfragen pro Client, um Missbrauch zu verhindern
Forward Proxy vs. Reverse Proxy
Die Begriffe Forward Proxy und Reverse Proxy werden oft verwechselt, obwohl sie gegensaetzliche Aufgaben erfuellen. Der entscheidende Unterschied liegt darin, wer durch den Proxy geschuetzt wird.
| Merkmal | Forward Proxy | Reverse Proxy |
|---|---|---|
| Position | Vor den Clients | Vor den Servern |
| Schuetzt | Client-Identitaet | Server-Infrastruktur |
| Versteckt | Client-IP | Server-IP |
| Typischer Einsatz | Unternehmensnetzwerke, Anonymisierung | Webserver, APIs, Microservices |
| Beispiele | Squid, Privoxy | Nginx, HAProxy, Caddy |
Ein Forward Proxy sitzt im Client-Server-Modell auf der Client-Seite und leitet Anfragen im Namen der Clients weiter. Ein Reverse Proxy hingegen sitzt auf der Server-Seite und nimmt Anfragen im Namen der Server entgegen.
Beliebte Reverse-Proxy-Software
Es gibt verschiedene Software-Loesungen, die als Reverse Proxy eingesetzt werden koennen. Jede hat ihre Staerken und eignet sich fuer unterschiedliche Einsatzszenarien.
Nginx
Nginx ist einer der am haeufigsten eingesetzten Reverse Proxys weltweit. Er wurde 2004 von Igor Sysoev entwickelt und zeichnet sich durch hohe Performance bei gleichzeitig geringem Ressourcenverbrauch aus. Nginx verwendet ein ereignisgesteuertes, asynchrones Modell, das besonders effizient mit vielen gleichzeitigen Verbindungen umgehen kann.
# Einfache Nginx Reverse-Proxy-Konfiguration
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend-server:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Apache HTTP Server
Der Apache HTTP Server kann mit dem Modul mod_proxy als Reverse Proxy konfiguriert werden. Apache ist besonders in Umgebungen verbreitet, die bereits auf dem LAMP-Stack aufbauen. Er bietet umfangreiche Konfigurationsmoeglichkeiten durch .htaccess-Dateien.
# Apache Reverse-Proxy-Konfiguration
<VirtualHost *:80>
ServerName example.com
ProxyPreserveHost On
ProxyPass / http://backend-server:8080/
ProxyPassReverse / http://backend-server:8080/
</VirtualHost>
Weitere Loesungen
Neben Nginx und Apache gibt es weitere spezialisierte Reverse-Proxy-Loesungen:
- Caddy: Moderner Webserver mit automatischer HTTPS-Konfiguration via Let's Encrypt
- HAProxy: Hochperformanter Load Balancer und Reverse Proxy fuer Enterprise-Umgebungen
- Traefik: Cloud-nativer Reverse Proxy, besonders beliebt in Docker- und Kubernetes-Umgebungen
- Envoy: Service Proxy fuer Microservices-Architekturen
Einsatzszenarien in der Praxis
Reverse Proxys kommen in vielen realen Szenarien zum Einsatz. Hier sind typische Anwendungsfaelle, denen du in der IT-Praxis begegnen wirst:
Microservices-Architektur
In einer Microservices-Architektur fungiert der Reverse Proxy als API-Gateway. Er routet Anfragen an die richtigen Services, authentifiziert Benutzer und kann verschiedene APIs unter einer einheitlichen Adresse zusammenfuehren.
Container-Orchestrierung
Bei der Arbeit mit Docker und Kubernetes uebernehmen Reverse Proxys wie Traefik oder Nginx Ingress Controller das Routing zu den einzelnen Containern. Sie erkennen automatisch neue Services und aktualisieren ihre Konfiguration dynamisch.
Content Delivery Networks
CDNs wie Cloudflare oder Akamai nutzen weltweit verteilte Reverse Proxys, um Inhalte naeher am Benutzer zu cachen. Dadurch verkuerzen sich die Ladezeiten erheblich, da Anfragen nicht erst zum Origin-Server reisen muessen.
Reverse Proxy in der IT-Praxis
Das Verstaendnis von Reverse Proxys ist fuer verschiedene IT-Berufe relevant. Als Fachinformatiker fuer Systemintegration wirst du haeufig Webserver und Netzwerkinfrastrukturen einrichten, bei denen Reverse Proxys eine zentrale Rolle spielen - sei es fuer Load Balancing, SSL-Terminierung oder als zusaetzliche Sicherheitsschicht.
Auch in der Anwendungsentwicklung begegnest du Reverse Proxys, etwa wenn du Webanwendungen in Container-Umgebungen bereitstellst oder mit Microservices-Architekturen arbeitest.