Das Wort „Proxy" wird für zwei verschiedene Aufbauten verwendet, und im Gespräch werden sie ständig verwechselt. Sagt ein Entwickler „Wir haben einen Proxy vor die Website gesetzt", meint er einen Reverse-Proxy. Sagt ein Datenteam „Unsere Anfragen laufen über einen Proxy", meint es einen Forward-Proxy. Beide sind Vermittler zwischen zwei Parteien; der Unterschied liegt darin, in wessen Auftrag sie arbeiten und wer sie einrichtet.
In diesem Artikel beschreiben wir beide Aufbauten einzeln, zeigen Schritt für Schritt, wie eine Anfrage durch jeden von ihnen läuft, und fassen die Unterschiede in einer Tabelle zusammen. Danach behandeln wir, wofür ein Reverse-Proxy eingesetzt wird (Lastverteilung, TLS-Terminierung, Caching), wo CDNs in diesem Bild stehen, und eine kurze Nginx-Konfiguration.
Was ist ein Forward-Proxy?
Ein Forward-Proxy ist der Vermittler, über den ein oder mehrere Clients ins Internet gehen. Der Client kennt die Adresse des Proxys und schickt seine Anfragen dorthin; der Proxy leitet sie mit seiner eigenen IP-Adresse an die Zielseiten weiter. Die Zielseite sieht die Verbindung als vom Proxy kommend.
Im Alltag ist mit „Proxy" fast immer ein Forward-Proxy gemeint. Die Residential-, Datacenter- und Mobile-Proxys, die Proxy-Anbieter verkaufen, sind allesamt Forward-Proxys. Den grundlegenden Ablauf erklären wir ausführlich in Was ist ein Proxy-Server und wie funktioniert er?.
So verläuft eine Anfrage über einen Forward-Proxy:
- Der Nutzer trägt die Proxy-Adresse im Browser oder im Code ein.
- Der Client verbindet sich nicht mit der Zielseite, sondern mit dem Proxy, und sendet für HTTPS eine
CONNECT target.com:443-Anfrage. - Der Proxy authentifiziert den Client bei Bedarf und verbindet sich dann mit seiner eigenen IP-Adresse zur Zielseite.
- Die Zielseite protokolliert die Anfrage als von der IP des Proxys kommend und schickt die Antwort an ihn.
- Der Proxy gibt die Antwort an den Client zurück.
Über die Befehlszeile ist ein Forward-Proxy eine einzige Option:
curl -x "http://user:pass@pr.proxynet.io:8000" https://httpbin.org/ipHier weiß der Client vom Proxy, denn er hat die Adresse selbst angegeben.
Was ist ein Reverse-Proxy?
Ein Reverse-Proxy ist ein Vermittler, der vor einem oder mehreren Servern steht. Verbindet sich ein Besucher mit example.com, verbindet er sich tatsächlich mit dem Reverse-Proxy; dieser leitet die Anfrage an einen der Anwendungsserver dahinter weiter und gibt die Antwort an den Besucher zurück. Der Besucher weiß nicht, welche Maschine geantwortet hat, und muss es auch nicht wissen.
Der HTTP-Standard RFC 9110 nennt diesen Aufbau „Gateway" oder „Reverse Proxy" und beschreibt ihn als Vermittler, der aus Sicht des Clients wie der eigentliche Server auftritt. Für den Client ist der Reverse-Proxy die Website.
So verläuft eine Anfrage über einen Reverse-Proxy:
- Der Besucher öffnet
example.com; DNS löst den Namen auf die IP-Adresse des Reverse-Proxys auf. - Der Reverse-Proxy nimmt die Verbindung an und entschlüsselt TLS in der Regel an dieser Stelle.
- Er wählt anhand von Anfragepfad, Hostname oder aktueller Last einen der Backend-Server aus.
- Er leitet die Anfrage an diesen Server weiter und ergänzt die echte IP-Adresse des Besuchers im Header
X-Forwarded-ForoderForwarded. - Er nimmt die Antwort des Anwendungsservers entgegen, speichert sie bei Bedarf im Cache und schickt sie an den Besucher.
Was ist der Unterschied zwischen beiden?
Beide Aufbauten nehmen Datenverkehr an einem Ende an und geben ihn am anderen weiter. Den Unterschied sehen Sie am schnellsten, wenn Sie fragen, wessen Interessen der Vermittler dient.
| Kriterium | Forward-Proxy | Reverse-Proxy |
|---|---|---|
| Wen vertritt er? | Den Client | Den Server |
| Wo steht er? | Zwischen Client und Internet | Zwischen Internet und Servern |
| Wer richtet ihn ein? | Nutzer oder Netzwerkadministrator | Websitebetreiber oder Infrastrukturteam |
| Weiß der Client davon? | Ja, der Client trägt die Adresse ein | Nein, der Client glaubt, mit der Website zu sprechen |
| Wessen IP wird verborgen? | Die des Clients | Die der Backend-Server |
| Wie viele Ziele? | Jede Website im Internet | Bestimmte Server dahinter |
| TLS | Tunnelt HTTPS und sieht den Inhalt nicht | Terminiert TLS meist selbst |
| Caching | Bei unverschlüsseltem HTTP möglich | Weit verbreitet |
| Typische Software | Squid, kommerzielle Proxy-Dienste | Nginx, HAProxy, Envoy, CDNs |
| Typischer Einsatz | Zugriffskontrolle, standortbezogener Zugriff, Datenerfassung | Lastverteilung, Sicherheit, Caching |
Die wichtigste Zeile ist die TLS-Zeile. Ein Forward-Proxy öffnet für HTTPS-Verkehr nur einen Tunnel und transportiert verschlüsselte Bytes. Ein Reverse-Proxy besitzt das Zertifikat der Website, entschlüsselt daher den Verkehr, liest die Anfrage und kann sie anhand ihres Inhalts weiterleiten.
Wofür wird ein Reverse-Proxy eingesetzt?
Ein Reverse-Proxy übernimmt Aufgaben, um die sich die Anwendung selbst nicht kümmern soll:
- Lastverteilung. Er verteilt eingehende Anfragen auf mehrere Anwendungsserver. Antwortet ein Server nicht mehr, lenkt er den Verkehr auf die anderen um, ohne dass Besucher etwas merken.
- TLS-Terminierung. Zertifikatsverwaltung und Entschlüsselung erfolgen an einer Stelle. Die Backend-Server können im internen Netz unverschlüsseltes HTTP sprechen oder ein separates internes Zertifikat nutzen.
- Caching und Komprimierung. Er speichert häufig angefragte Seiten und statische Dateien und komprimiert Antworten, sodass weniger Anfragen den Anwendungsserver erreichen.
- Sicherheitsschicht. Er setzt Regeln einer Web Application Firewall (WAF), Rate-Limits und Bot-Filter um. Die IP-Adressen der Backend-Server sind nicht direkt angreifbar.
- Pfadbasiertes Routing. Er schickt
/api-Anfragen an einen Dienst und/blog-Anfragen an einen anderen, sodass mehrere Anwendungen unter einer Domain laufen. - Unterbrechungsfreie Deployments. Eine neue Version auf neuen Servern auszurollen und den Verkehr schrittweise umzuleiten, geschieht über den Reverse-Proxy.
Wie ein Reverse-Proxy mit einer Firewall zusammenarbeitet, erklären wir in Proxy und Firewall im Vergleich.
Wie richten Sie mit Nginx einen einfachen Reverse-Proxy ein?
Die zentrale Direktive für einen Reverse-Proxy in Nginx ist proxy_pass. Die folgende Konfiguration verteilt den Verkehr auf Port 443 auf zwei Anwendungsserver und übergibt die echte IP-Adresse des Besuchers an das Backend:
upstream app {
server 10.0.0.11:3000;
server 10.0.0.12:3000;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
location / {
proxy_pass http://app;
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;
}
}Was die Zeilen tun:
- Der
upstream-Block definiert die Backend-Server. Standardmäßig verteilt Nginx Anfragen reihum; Direktiven wieleast_connoderip_hashändern das Verfahren. listen 443 sslund die Zertifikatszeilen terminieren TLS am Reverse-Proxy.proxy_passleitet die Anfrage an die Gruppeappweiter.- Ohne die
proxy_set_header-Zeilen sieht die Backend-Anwendung jede Anfrage als von der IP des Reverse-Proxys kommend, wodurch Protokolle und Rate-Limits sinnlos werden.
Die vollständige Liste der Direktiven finden Sie in der ngx_http_proxy_module-Dokumentation von Nginx.
Kann man dem X-Forwarded-For-Header vertrauen?
Eine Anwendung hinter einem Reverse-Proxy liest die IP-Adresse des Besuchers aus dem Header X-Forwarded-For. Dieser Header ist Klartext, und auch der Client kann ihn senden. Vertraut die Anwendung ihm blind, kann ein Besucher eine gefälschte IP-Adresse eintragen und Rate-Limits oder IP-basierte Beschränkungen umgehen.
Der richtige Ansatz:
- Den Header nur bei Verbindungen berücksichtigen, die von bekannten Reverse-Proxys kommen. In Nginx geschieht das mit den Direktiven
set_real_ip_fromundreal_ip_header. - Bei mehreren Vermittlern die Liste von rechts nach links lesen und die Adresse vor dem letzten vertrauenswürdigen Vermittler nehmen.
- Wo die Infrastruktur es unterstützt, den standardisierten Header
Forwarded(RFC 7239) bevorzugen.
Dieselbe Logik gilt auf der Seite des Forward-Proxys: Eine Zielseite kann anhand von Headern, die ein Proxy hinzufügt, den echten Client erkennen. Deshalb fügen die meisten Proxy-Dienste keine Header mit der Client-IP hinzu.
Ist ein CDN ein Reverse-Proxy?
Ja. Ein Content Delivery Network (CDN) besteht aus Reverse-Proxy-Servern an Standorten auf der ganzen Welt. Stellen Sie eine Website hinter ein CDN, löst Ihre Domain auf die IP-Adressen des CDN auf; Besucher verbinden sich mit dem nächstgelegenen CDN-Server, und das CDN leitet Anfragen, die nicht im Cache liegen, an Ihren Server (den Origin) weiter.
Deshalb übernehmen CDNs alle Aufgaben eines Reverse-Proxys in großem Maßstab: TLS-Terminierung, Caching, Abwehr von DDoS-Angriffen, WAF und Bot-Management. Die Rate-Limits und Bot-Prüfseiten, auf die ein Scraper stößt, stammen meist nicht von der Zielseite selbst, sondern von dieser Reverse-Proxy-Schicht davor. Ein Beispiel dafür, wie diese Schicht Bot-Verkehr einordnet, finden Sie in Cloudflare Precursor.
Werden Forward- und Reverse-Proxy gemeinsam genutzt?
Die meisten Anfragen laufen durch beide. Ruft das Skript eines Datenteams Preise von einer E-Commerce-Website ab, sieht der Weg so aus:
- Das Skript sendet die Anfrage an den Forward-Proxy des Teams.
- Der Forward-Proxy löst die Domain der Website auf und verbindet sich mit dem CDN (Reverse-Proxy) vor der Website.
- Das CDN bewertet die Anfrage und leitet sie, sofern sie nicht im Cache liegt, an den Anwendungsserver der Website weiter.
- Die Antwort nimmt dieselbe Kette in umgekehrter Richtung zurück zum Skript.
Hier sieht die Website die Ausgangs-IP des Forward-Proxys und das Skript die IP des CDN; keine Seite kennt die echte Maschine hinter der anderen. In Firmennetzwerken ist die Kette noch länger: Mitarbeiterrechner → Firmen-Proxy → Firewall → Internet → CDN der Website → Anwendungsserver.
Anwendungsfälle
- Datenerfassungsteam: nutzt einen Forward-Proxy, um Preise in verschiedenen Ländern zu sehen und Anfragen zu verteilen. Für diese Aufgabe wird ein Rotierender Proxy eingerichtet, der über eine einzige Adresse bei jeder Verbindung eine andere IP liefert. Skalierung von Crawls beschreibt unsere Seite zur Web-Crawler-Lösung.
- IT-Team im Unternehmen: nutzt einen Forward-Proxy, um den Verkehr der Mitarbeitenden über einen Ausgang zu leiten und zu protokollieren, und einen Reverse-Proxy, um interne Anwendungen bereitzustellen. Die Datenschutzseite finden Sie auf unserer Seite zur Datensicherheit.
- Entwickler einer Webanwendung: stellt die Anwendung hinter Nginx oder ein CDN und hält Lastverteilung und TLS aus dem Anwendungscode heraus.
- Softwaretestteam: nutzt einen Forward-Proxy, um zu sehen, wie sich eine Anwendung aus anderen Ländern öffnet, und einen Reverse-Proxy, um Testdienste unter einer Domain zu bündeln.
- Einzelne Nutzer: richten einen Forward-Proxy wie einen HTTPS-Proxy ein, um Browserverkehr über einen anderen Standort zu leiten. Ist zusätzlich Verschlüsselung nötig, ist ein VPN das Mittel der Wahl; den Unterschied erklären wir in Proxy und VPN im Vergleich.
Häufige Fehler
- Einen Reverse-Proxy für ein Anonymisierungswerkzeug halten. Ein Reverse-Proxy schützt den Websitebetreiber; er verbirgt die IP-Adresse des Besuchers nicht, sondern gibt sie mit
X-Forwarded-Forsogar an das Backend weiter. - Den
Host-Header nicht weitergeben. Standardmäßig sendet Nginx den Servernamen aus derproxy_pass-Adresse. Arbeitet die Backend-Anwendung mit dem Domainnamen, liefert sie die falsche Website oder eine Fehlerseite. - Den Backend-Server direkt erreichbar lassen. Die Sicherheitsregeln des Reverse-Proxys sind wertlos, sobald der Anwendungsserver über seine eigene IP-Adresse erreichbar ist. Der Anwendungsport sollte nur für die interne Adresse des Reverse-Proxys offen sein.
- Beim Forward-Proxy Identität in Headern mitschicken. Ein selbst betriebener Squid-Proxy kann mit Standardeinstellungen die Header
X-Forwarded-ForundViahinzufügen; dann sieht die Zielseite die echte Adresse des Clients. - Nicht abgestimmte Timeouts. Ist das Timeout des Reverse-Proxys kürzer als das der Anwendung, werden lange Anfragen mit
504 Gateway Timeoutabgebrochen.
Entscheidungshilfe
| Ihr Bedarf | Empfehlung |
|---|---|
| Anfragen von einer anderen IP-Adresse senden | Forward-Proxy |
| Inhalte in anderen Ländern sehen | Forward-Proxy (mit Standortauswahl) |
| Verkehr der Mitarbeitenden zentral kontrollieren | Forward-Proxy (Unternehmen) |
| Die eigene Website auf mehrere Server verteilen | Reverse-Proxy |
| TLS-Zertifikate an einer Stelle verwalten | Reverse-Proxy |
| Die eigene Website vor Angriffen und Bot-Verkehr schützen | Reverse-Proxy oder CDN |
| Statische Inhalte weltweit schnell ausliefern | CDN |
Häufig gestellte Fragen
Ist „umgekehrter Proxy" dasselbe wie Reverse-Proxy?
Ja, beides bezeichnet denselben Aufbau. In technischer Dokumentation und in Softwareeinstellungen ist fast immer der englische Begriff „Reverse Proxy" üblich.
Ist ein VPN ein Forward-Proxy?
Funktional ähneln sie sich: Beide leiten Ihren Verkehr über einen anderen Server, und die Zielseite sieht dessen IP-Adresse. Ein VPN arbeitet jedoch auf Betriebssystemebene und verschlüsselt den gesamten Verkehr zwischen Ihrem Gerät und dem VPN-Server. Ein Forward-Proxy wird pro Anwendung eingerichtet und verschlüsselt von sich aus nichts.
Lässt sich Nginx als Forward-Proxy verwenden?
Nginx kann unverschlüsselte HTTP-Anfragen weiterleiten, unterstützt in der Standardversion aber nicht die für HTTPS nötige Methode CONNECT; dafür ist ein Drittanbietermodul erforderlich. Forward-Proxys werden meist mit spezialisierter Software wie Squid aufgebaut.
Macht ein Reverse-Proxy eine Website langsamer?
Theoretisch fügt er eine kleine Verzögerung hinzu, weil es eine Station mehr gibt. In der Praxis laden die meisten Websites hinter einem Reverse-Proxy oder CDN dank Caching, Komprimierung, Wiederverwendung von Verbindungen und Nähe zum Besucher schneller.
Verrät eine Website, dass sie hinter einem Reverse-Proxy steht?
Häufig ja. In den Antwort-Headern erscheinen Server, Via oder CDN-spezifische Header, und die IP-Adresse der Domain gehört einem CDN. Die Adresse des Servers dahinter verrät das jedoch nicht.
Welche Art von Proxy verkaufen Proxy-Dienste?
Residential-, Datacenter-, ISP- und Mobile-Proxy-Dienste sind allesamt Forward-Proxys. Sie erhalten eine Eingangsadresse, und Ihre Anfragen gehen über eine der Ausgangs-IPs des Anbieters ins Netz.
Fazit
Ein Forward-Proxy vertritt den Client, ein Reverse-Proxy den Server. Einen Forward-Proxy richtet der Nutzer bewusst ein, und die Zielseite sieht die IP-Adresse des Proxys; einen Reverse-Proxy richtet der Websitebetreiber ein, und Besucher bekommen die Server dahinter nie zu sehen. Reverse-Proxys übernehmen Lastverteilung, TLS-Terminierung, Caching und Sicherheit, und CDNs sind dieselbe Idee im globalen Maßstab. Wenn Sie Anfragen von verschiedenen IP-Adressen und Standorten senden müssen, suchen Sie einen Forward-Proxy; die Optionen finden Sie in unseren Proxy-Diensten.




