Was ist der Unterschied zwischen einem Proxyserver und einem Reverse-Proxyserver?

1773

Was ist der Unterschied zwischen einem Proxyserver und einem Reverse-Proxyserver?

Peter Mortensen
quelle
51
Dies wird auch in Apache-Dokumenten gut erklärt .
Paolo
3
@Paolo, das machte es viel einfacher zu verstehen als der Wikipedia-Artikel. Vielleicht sollte ich irgendwann einige dieser Informationen in den Wikipedia-Artikel
einarbeiten
Nehmen wir an, ich habe Host A, der eine Verbindung zu Host C herstellen muss, dies jedoch nicht direkt. Stattdessen wird es als mit Hosteintrag oder möglicherweise DNS konfiguriert, um B aufzurufen, das die Anforderung an C weiterleitet. C kümmert sich nicht oder weiß nichts über B. Ist dies ein Forward-Proxy oder ein Reverse-Proxy?
Daniel Leach
Wenn Host A nicht zu Host C gelangen kann, ohne für die erste Kontaktaufnahme mit Host B konfiguriert zu sein, ist Host B ein herkömmlicher Forward- oder "Outbound" -Proxy-Server.
TaylorMonacelli
5
Forward-Proxies gewähren dem Kunden Anonymität (dh denken Sie an Tor). Reverse-Proxys gewähren Back-End-Servern Anonymität (dh denken Sie an Server hinter einer DMZ).
8bitjunkie

Antworten:

2969

Die vorherigen Antworten waren korrekt, aber vielleicht zu knapp. Ich werde versuchen, einige Beispiele hinzuzufügen.

Zuallererst beschreibt das Wort "Proxy" jemanden oder etwas, das im Namen einer anderen Person handelt.

Im Computerbereich handelt es sich um einen Server, der im Auftrag eines anderen Computers handelt.

Aus Gründen der Barrierefreiheit beschränke ich meine Diskussion auf Web-Proxys. Die Idee eines Proxys ist jedoch nicht auf Websites beschränkt.

FORWARD-Proxy

Die meisten Diskussionen über Web-Proxys beziehen sich auf den Proxy-Typ, der als "Forward-Proxy" bezeichnet wird.

Das Proxy-Ereignis besteht in diesem Fall darin, dass der "Forward-Proxy" im Auftrag des ursprünglichen Anforderers Daten von einer anderen Website abruft.

Eine Geschichte von 3 Computern (Teil I)

Als Beispiel werde ich drei Computer auflisten, die mit dem Internet verbunden sind.

  • X = Ihr Computer oder "Client" -Computer im Internet
  • Y = die Proxy-Website, proxy.example.org
  • Z = die Website, die Sie besuchen möchten, www.example.net

Normalerweise würde man sich direkt von verbinden X --> Z.

In einigen Szenarien ist es jedoch besser, Y --> Zim Namen von X, welche Ketten wie folgt : X --> Y --> Z.

Gründe, warum X einen Forward-Proxy-Server verwenden möchte:

Hier ist eine (sehr) unvollständige Liste der Verwendungen eines Forward-Proxy-Servers:

  • 1) X kann nicht direkt auf Z zugreifen, weil

    • a) Jemand mit Verwaltungsbefugnis über Xdie Internetverbindung hat beschlossen, den gesamten Zugriff auf die Website zu sperren Z.

      • Beispiele:

        • Der Storm Worm-Virus verbreitet sich, indem er Personen zum Besuch verleitet. Daher familypostcards2008.comhat der Systemadministrator den Zugriff auf die Site blockiert, um zu verhindern, dass Benutzer sich versehentlich selbst infizieren.

        • Die Mitarbeiter eines großen Unternehmens haben zu viel Zeit verschwendet facebook.com, daher möchte das Management, dass der Zugriff während der Geschäftszeiten blockiert wird.

        • Eine örtliche Grundschule verbietet den Internetzugang zur playboy.comWebsite.

        • Eine Regierung ist nicht in der Lage, die Veröffentlichung von Nachrichten zu kontrollieren. Daher kontrolliert sie stattdessen den Zugriff auf Nachrichten, indem sie Websites wie z wikipedia.org. Siehe TOR oder FreeNet .

    • b) Der Administrator von Zhat gesperrt X.

      • Beispiele:

        • Der Administrator von Z hat Hacking-Versuche von X bemerkt, daher hat der Administrator beschlossen, die IP-Adresse (und / oder den Bereich) von X zu blockieren.

        • Z ist eine Forum-Website. Xspammt das Forum. Z blockiert X.

REVERSE-Proxy

Eine Geschichte von 3 Computern (Teil II)

In diesem Beispiel werde ich drei Computer auflisten, die mit dem Internet verbunden sind.

  • X = Ihr Computer oder "Client" -Computer im Internet
  • Y = die Reverse-Proxy-Website proxy.example.com
  • Z = die Website, die Sie besuchen möchten, www.example.net

Normalerweise würde man sich direkt von verbinden X --> Z.

In einigen Szenarien ist es für den Administrator jedoch besser Z, den direkten Zugriff einzuschränken oder zu verbieten und Besucher zu zwingen, zuerst Y zu durchlaufen. Nach wie vor werden Daten von Y --> Zim Auftrag von abgerufen X, die wie folgt verkettet sind : X --> Y --> Z.

Was sich diesmal von einem "Forward-Proxy" unterscheidet, ist, dass der Benutzer diesmal Xnicht weiß, auf was er zugreift Z, da der Benutzer Xnur sieht, dass er mit ihm kommuniziert Y. Der Server Zist für Clients unsichtbar und nur der Reverse-Proxy Yist extern sichtbar. Ein Reverse-Proxy erfordert keine (Proxy-) Konfiguration auf der Clientseite.

Der Kunde Xglaubt, nur mit Y( X --> Y) zu kommunizieren , aber die Realität ist, dass er die Ygesamte Kommunikation ( X --> Y --> Zerneut) weiterleitet .

Gründe, warum Z einen Reverse-Proxy-Server einrichten möchte:

  • 1) Z möchte den gesamten Verkehr auf seiner Website zwingen, zuerst Y zu passieren.
    • a) Z hat eine große Website, die Millionen von Menschen sehen möchten, aber ein einzelner Webserver kann nicht den gesamten Datenverkehr verarbeiten. Daher richtet Z viele Server ein und stellt im Internet einen Reverse-Proxy bereit, der Benutzer an den Server sendet, der ihnen am nächsten liegt, wenn sie versuchen, Z zu besuchen. Dies ist Teil der Funktionsweise des CDN-Konzepts (Content Distribution Network).
  • 2) Der Administrator von Z ist besorgt über Vergeltungsmaßnahmen für auf dem Server gehostete Inhalte und möchte den Hauptserver nicht direkt der Öffentlichkeit zugänglich machen.
    • a) Besitzer von Spam-Marken wie "Canadian Pharmacy" scheinen Tausende von Servern zu haben, während in Wirklichkeit die meisten Websites auf weit weniger Servern gehostet werden. Darüber hinaus werden durch Missbrauchsbeschwerden über Spam nur die öffentlichen Server und nicht der Hauptserver heruntergefahren.

In den oben genannten Szenarien Zhat die Möglichkeit zu wählen Y.

Links zu Themen aus dem Beitrag:

Content Delivery Network

Proxy-Software weiterleiten (serverseitig)

Reverse-Proxy-Software für HTTP (serverseitig)

Reverse-Proxy-Software für TCP (serverseitig)

Siehe auch:

qyb2zm302
quelle
1
TAM (tivoli access manager) ist auch ein Reverse-Proxy-Server, oder?
Clark Bao
2
Konzeptionell könnten wir dann einen "Reverse Proxy" als "erzwungenen" Proxy bezeichnen oder sich diesen vorstellen?
Thomas
3
"Dadurch werden Benutzer zu dem Server gesendet, der ihnen am nächsten liegt" - Worum geht es? Der gesamte Datenverkehr wird über diesen Proxyserver geleitet, oder? Es spielt also keine Rolle, wo sich der 'lokale' Server dahinter befindet. Oder fehlt mir etwas?
Pavel
2
@Pavel wahrscheinlich "Server am nächsten zu ihnen" ist nicht die beste Beschreibung. Eher wie "Last auf Serverpool verteilen" ist eine bessere Beschreibung. In diesem Beispiel wurde ein Reverse-Proxy-Load-Balancer beschrieben.
JDS
6
Dies war der Schlüssel für mich: - vorwärts : (X --> Y) --> Z, rückwärts : X --> (Y --> Z).
Druckles
538

Ein Paar einfacher Definitionen wäre:

Forward Proxy: Handeln im Namen eines Anforderers (oder Service-Verbrauchers)

Reverse Proxy: Handeln im Auftrag des Service- / Inhaltsproduzenten.

Krishna Bheemanakatte
quelle
413

Ich fand das Diagramm unten sehr hilfreich. Es zeigt nur die Architektur eines vorwärts gegen Reverse - Proxy - Setup vom Client zum Server über das Internet. Dieses Bild hilft Ihnen, die Antwort von qyb2zm302 und andere Antworten besser zu verstehen .

Forward Proxy vs Reverse Proxy

Sie können auch beobachten dieses Video von F5 ‚s DevCentral von Peter Silva.

Bildquelle: Quora . Doch wie pro Martijn Pieters , dieses Bild könnte aus seiner Sicheren Gemeinschaft Pulse oder Julien Pauli- Website (auf Französisch) bei developpez.com.

Es erinnerte mich an das klassische Sprichwort:

Ein Bild sagt mehr als 1000 Worte.

Nishant
quelle
9
Das ist wirklich alles, was Sie sehen müssen. Das Einrichten eines Proxys in Ihrem Browser, damit Netflix nicht weiß, in welchem ​​Land Sie sich befinden, ist ein Forward-Proxy. Ein Upstream-Dienst, der eine eingehende Anforderung weiterleitet (möglicherweise möchten Sie eine Anforderung an zwei Server senden), ist ein Reverse-Proxy.
Kyle Chadha
5
Forward Proxy kann auch im Internet sein
Mac
7
Das beste Bild in der letzten Antwort. Vielen Dank. :) Ein Reverse-Proxy wird auch als "Load Balancer" bezeichnet und wirkt auf der Serverseite (Lastverteilung auf verschiedene Server), während ein Forward-Proxy die Client-Seite unterstützt.
Codepleb
1
Der Quora-Autor ist nicht der ursprüngliche Autor des Bildes, da diese Seite aus dem Jahr 2013 mit einer einzigen Revision ein Jahr älter ist.
Martijn Pieters
1
Es kann sein, dass dieses französische Tutorial von 2009 die Quelle ist; Die Webarchivkopie 2009 weist Probleme mit Javascript auf (fortgesetzte Weiterleitungen). Die Bilder wurden erst 2017 archiviert, die Quelle verweist jedoch auf dieselben Bild-URLs wie spätere Quellen.
Martijn Pieters
230

Forward Proxy vs. Reverse Proxy (2012) erklärt den Unterschied zwischen Forward und Reverse Proxy sehr deutlich.

In der Antwort von qyb2zm302 werden die Anwendungen von Proxys ausführlich beschrieben, es wird jedoch auf das grundlegende Konzept zwischen Vorwärts- und Rückwärts-Proxys eingegangen. Für den Reverse-Proxy X → Y → Z kennt X Y und nicht Z und nicht umgekehrt.

Ein Proxy ist einfach ein Vermittler für die Kommunikation (Anfragen + Antworten). Client <-> Proxy <-> Server

  • Client-Proxy: ( Client <-> Proxy ) <-> Server

Der Bevollmächtigte handelt im Namen des Kunden. Der Kunde kennt alle drei an der Kette beteiligten Maschinen. Der Server nicht.

  • Server-Proxy: Client <-> ( Proxy <-> Server )

Der Proxy handelt im Namen des Servers. Der Client kennt nur den Proxy. Der Server kennt die gesamte Kette.

Es scheint mir, dass Vorwärts und Rückwärts einfach verwirrende, perspektivabhängige Namen für Client und Server sind Proxy sind. Ich schlage vor, das erstere für das letztere aufzugeben, um explizit zu kommunizieren.

Um die Sache noch weiter zu verkomplizieren, ist natürlich nicht jede Maschine ausschließlich ein Client oder ein Server. Wenn der Kontext nicht eindeutig ist, geben Sie am besten explizit an, wo sich der Proxy befindet und welche Kommunikation er durchführt.

Protongun
quelle
3
Diese Antwort steht im Einklang mit httpd.apache.org/docs/2.0/mod/mod_proxy.html#forwardreverse und hilft, es klar zu erklären
Greg Woods
7
Es scheint, dass das relevanteste Merkmal in diesem Vergleich wer-weiß-wer ist. Forward-Proxy: Der Client kennt sowohl den Proxy (er hat ihn tatsächlich konfiguriert) als auch den Zielserver (da er die URL des Servers anfordert), während der Client im Fall des Reverse-Proxys den Proxy als Zielserver kennt (es weiß nicht, was der Proxy tatsächlich anruft (es kann sich um einen oder mehrere Server handeln). Bei einem Forward-Proxy weiß der Server nicht, wer die Clients wirklich sind, da der Proxy die Anforderung an ihn weiterleitet. Forward-Proxy: Client (s) ausblenden. Reverse Proxy: Server ausblenden.
Belun
@Protongun "..Ein Proxy ist einfach ein Vermittler für die Kommunikation (Anfragen + Antworten) .." Was braucht Proxy überhaupt? Bitte klären Sie. IMHO sollte diese Antwort die akzeptierte gewesen sein
Vikramvi
Der erste Link in diesem Beitrag macht es klar und leicht für alle zu verstehen
Legends
@ Belun Gut erklärt in äußerst einfachen Worten / Begriffen.
Ilangeeran
129

Einige Diagramme könnten helfen:

Proxy weiterleiten

Proxy weiterleiten

Proxy umkehren

Proxy umkehren

Maria Ines Parnisari
quelle
8
Ist es? Sie sehen gleich aus! Was ist das Besondere daran, eine Antwort neu zu schreiben, die einen Proxy zu einem "Reverse" -Proxy macht?
8bitjunkie
2
@ 8bitjunkie Es geht um Perspektive. Beachten Sie, dass der Client für den Forward-Proxy weiß, dass er mit einem Proxyserver kommuniziert. Für den Reverse-Proxy glaubt der Client, direkt mit home.com zu kommunizieren. Die Proxys haben auch unterschiedliche Implementierungen. Der Reverse Proxy kann ziemlich dumm sein. Sie müssen lediglich die Adresse ändern und den Anruf weiterleiten. Mehr Netzwerklogik auf dem Client, weniger auf dem Proxy. Der Forward-Proxy muss andererseits irgendwie wissen, dass für eine Anforderung von proxy.com () ein Aufruf von service.com erforderlich ist. Weniger Netzwerklogik auf dem Client, mehr auf dem Proxy.
Kevin
1
Was ist mit " myhome.myhosting.com in hom.com übersetzen " gemeint? Ich verstehe den Übersetzungsteil nicht. Möchten Sie einen Teil des Antwortheaders neu schreiben oder so?
1252748
Einer der Gründe für Reverse Proxy (basierend auf dem, was ich aus der akzeptierten Antwort verstanden habe) ist auch, dass der Zweck darin besteht, starken eingehenden Datenverkehr auf mehrere Server aufzuteilen. Wo in dieser Kette passiert das? Ist das eine andere "eingehende Regel"?
1252748
@ 1252748 ungefähr 1) würde die Übersetzung einfach bedeuten, die URLs zuzuordnen und eine Anfrage an die entsprechende URL zu senden. ca. 2) Ja, Sie können den Server so konfigurieren, dass er beispielsweise Round Robin verwendet, um die Anforderungen zwischen den Servern zu verteilen.
Maria Ines Parnisari
72

Der Unterschied liegt hauptsächlich in der Bereitstellung. Web-Forward- und Reverse-Proxys verfügen alle über dieselben zugrunde liegenden Funktionen. Sie akzeptieren Anforderungen für HTTP-Anforderungen in verschiedenen Formaten und geben eine Antwort, normalerweise durch Zugriff auf den Ursprungs- oder Kontaktserver.

Server mit vollem Funktionsumfang verfügen normalerweise über Zugriffskontrolle, Caching und einige Link-Mapping-Funktionen.

Ein Forward-Proxy ist ein Proxy, auf den durch Konfigurieren des Client-Computers zugegriffen wird. Der Client benötigt Protokollunterstützung für Proxy-Funktionen (Umleitung, Proxy-Authentifizierung usw.). Der Proxy ist für die Benutzererfahrung transparent, nicht jedoch für die Anwendung.

Ein Reverse-Proxy ist ein Proxy, der als Webserver bereitgestellt wird und sich wie ein Webserver verhält, mit der Ausnahme, dass er die Anforderung nicht lokal aus Programmen und Festplatten zusammensetzt, sondern an einen Ursprungsserver weiterleitet. Aus Client-Sicht handelt es sich um einen Webserver, sodass die Benutzererfahrung vollständig transparent ist.

Tatsächlich kann eine einzelne Proxy-Instanz gleichzeitig als Vorwärts- und Rückwärts-Proxy für verschiedene Client-Populationen ausgeführt werden.

benc
quelle
Nur um sicherzugehen, dass ein Forward-Proxy clientseitig und ein Reverse-Proxy serverseitig ist?
Yves
4
@yves. Ein Proxy ist auch ein Server. Es ist nur so, dass der Client eine lokale Konfiguration benötigt, damit er kommunizieren kann. Während ein Reverse-Proxy eine Konfiguration auf dem Server selbst erfordert. Ihre physischen Knoten befinden sich beide auf der "Serverseite".
Adib Aroui
Nur zur allgemeinen Information, nicht alle Proxys können vorwärts und rückwärts arbeiten, z. B. SOCKS, aber keine HTTP-Proxys.
RastaJedi
60

Proxy: Die Anfrage wird im Namen des Kunden gestellt . Der Server gibt also die Antwort an den Proxy zurück und der Proxy leitet die Antwort an den Client weiter. Tatsächlich wird der Server niemals "erfahren", wer der Client war (die IP-Adresse des Clients). es wird nur den Proxy kennen. Der Client kennt den Server jedoch definitiv, da er im Wesentlichen die für den Server bestimmte HTTP-Anforderung formatiert, sie jedoch nur an den Proxy weitergibt.

Geben Sie hier die Bildbeschreibung ein

Reverse Proxy: Es empfängt die Anfrage im Namen des Servers . Es leitet die Anforderung an den Server weiter, empfängt die Antwort und gibt die Antwort an den Client zurück. In diesem Fall "lernt" der Client nie, wer der tatsächliche Server war (die IP-Adresse des Servers) (mit einigen Ausnahmen). es wird nur den Proxy kennen. Der Server kennt oder wird den tatsächlichen Client nicht kennen, abhängig von den Konfigurationen des Reverse-Proxys.

Geben Sie hier die Bildbeschreibung ein

Dimos
quelle
6
Ich habe das Gefühl, ich könnte Ihre Definitionen rückwärts kopieren und einfügen und sie wären immer noch wahr. Ich glaube nicht, dass dies einen wesentlichen Unterschied erklärt oder klarstellt, was an einem Reverse-Proxy so "umgekehrt" ist.
8bitjunkie
6
Der Bevollmächtigte handelt immer im Namen einer Person (versteckt seine Identität vor der anderen Partei). Das "Reverse" bezieht sich auf das Umkehren der Seite, die "versteckt" ist, wobei es sich im ersten Fall um einen Client (regulärer Proxy) und im zweiten Fall um einen Server (Reverse Proxy) handelt. In der Tat könnten die Begriffe austauschbar verwendet werden. Es ist nur eine Frage der Konvention, den ersten Fall als regulären Stellvertreter ausgewählt zu haben (wahrscheinlich aus historischen Gründen). Hoffe das macht Sinn.
Dimos
44

Die beste Erklärung finden Sie hier mit Diagrammen:

Während ein Forward-Proxy im Namen von Clients ( oder anfordernden Hosts ) Proxys ist , wird ein Reverse-Proxy im Namen von Servern vertreten.

Während ein Forward-Proxy die Identitäten von Clients verbirgt, verbirgt ein Reverse-Proxy die Identitäten von Servern.

Farhan
quelle
38

Ein Proxyserver überträgt (und speichert optional) ausgehende Netzwerkanforderungen an verschiedene nicht unbedingt verwandte öffentliche Ressourcen im Internet. Ein Reverse-Proxy erfasst (und speichert optional) eingehende Anforderungen aus dem Internet und verteilt sie an verschiedene interne private Ressourcen, normalerweise für Hochverfügbarkeitszwecke.

Ignacio Vazquez-Abrams
quelle
28

Proxy (Forward-Proxy):

Wenn Computer in Ihrem LAN eine Verbindung zu einem Proxyserver herstellen, der auf das Internet zugreift. Zu den Vorteilen gehört, dass nur der Server dem Internet ausgesetzt ist. Außenstehende können nicht direkt auf die Computer zugreifen. Weiterleitungs-Proxys können den Internetzugang für Benutzer verbessern, indem sie Downloads zwischenspeichern. Sie können auch verwendet werden, um den Zugriff auf bestimmte Websites einzuschränken. Außerdem würde nur der Proxyserver eine öffentliche Adresse benötigen, nicht die Clients, die eine Verbindung zu ihm herstellen.

Reverse Proxy:

Ein Reverse-Proxy ist das Gegenteil eines Forward-Proxys. Stattdessen fungiert es als Proxy für die Server, mit denen eine Verbindung hergestellt wird. Anstatt direkt auf einen Remote-Server zuzugreifen, würde ein Benutzer den Reverse-Proxy durchlaufen und von dort zum entsprechenden Server geleitet werden. Nur der Reverse-Proxy würde ein SSL-Zertifikat benötigen, nur eine öffentliche IP-Adresse wäre erforderlich, und er kann den Lastausgleich eingehender Anforderungen verarbeiten, um die allgemeine Benutzererfahrung zu verbessern.

Geben Sie hier die Bildbeschreibung ein

Bildquelle: Erstellen eines Weiterleitungsproxys mithilfe des Routings für Anwendungsanforderungen

JSON C11
quelle
3
IMHO, einfachste / beste Antwort.
Vinicius Gonçalves
12

Mein Verständnis aus Apache- Sicht ist, dass Proxy bedeutet, dass wenn Site x Proxies für Site y sind, Anfragen nach x y zurückgeben.

Der umgekehrte Proxy bedeutet, dass die Antwort von y so angepasst wird, dass alle Verweise auf y zu x werden.

Damit der Benutzer nicht erkennen kann, dass ein Proxy beteiligt ist ...

Chris Kimpton
quelle
10

Nach meinem Verständnis ...

Wie jeder weiß, bedeutet Proxy zunächst "die Befugnis, jemand anderen zu vertreten". Jetzt gibt es zwei Dinge, Vorwärts- und Rückwärts-Proxy.

Proxy weiterleiten

Angenommen, Sie möchten auf "Google" zugreifen, und "Google" verfügt wiederum über n Server, die auf diese bestimmte Anfrage antworten.

In diesem Fall verwenden Sie, während Sie etwas von Google anfordern und nicht möchten, dass Google Ihre IP-Adresse sieht, einen Forward-Proxy, wie unten erläutert.

A → B → C.

Jetzt sind Sie hier und senden eine Anfrage über B. C wird also denken, dass die Anfrage von B kommt, nicht von A. Auf diese Weise können Sie verhindern, dass die IP-Adresse Ihres Kunden nicht der Außenwelt ausgesetzt wird.

Proxy umkehren

In diesem Fall nehmen wir zum besseren Verständnis den gleichen Fall von Forward Proxy. Hier haben Sie etwas an Google angefordert, das wiederum die eine Anfrage an den App-Server oder einen anderen Proxyserver sendet, um die Antwort zu erhalten. Diese Dinge werden also wie unten erklärt geschehen.

A → B → C.

C → D.

C ← D.

A ← B ← C.

Aus dem obigen Diagramm können Sie ersehen, dass eine Anfrage von B an C gesendet wurde, nicht von A. Dann wird von C eine Anfrage an D gesendet. In ähnlicher Weise wird die Antwort von D an C und dann an B und A gesendet.

Das obige Diagramm zeigt, dass nur der Kontext von Bedeutung ist, obwohl beide Proxys gleich handeln. Der clientseitige Proxy verbirgt jedoch die Clientinformationen, während der serverseitige Proxy die serverseitigen Informationen verbirgt.

Sourabh Sharma
quelle
10

Forward-Proxies gewähren dem Kunden Anonymität (dh denken Sie an Tor ).

Reverse-Proxys gewähren Back-End-Servern Anonymität (dh denken Sie an Server hinter einer DMZ).

8bitjunkie
quelle
9

Hier ist ein Beispiel für einen Reverse-Proxy (als Load Balancer).

Ein Client surft zu website.com und auf dem Server, auf den er trifft, wird ein Reverse-Proxy ausgeführt. Der Reverse-Proxy ist Pound . Pound nimmt die Anforderung entgegen und sendet sie an einen der drei dahinter liegenden Anwendungsserver. In diesem Beispiel ist Pound ein Load Balancer. Das heißt, es verteilt die Last zwischen drei Anwendungsservern.

Die Anwendungsserver stellen den Inhalt der Website dem Client zur Verfügung.

ae.
quelle
8

Ein Forward-Proxy dient Benutzern : Er hilft Benutzern beim Zugriff auf den Server .

Ein Reverse-Proxy dient dem Server : Er schützt den Server vor Benutzern .

HoangYell
quelle
4

Wenn kein Proxy

Von der Client- und der Serverseite aus gesehen sind dieselben:

Client -> Server

Proxy

Von der Client-Seite:

Client -> Proxy -> Server

Von der Serverseite:

Client -> Server

Proxy umkehren

Von der Client-Seite:

Client -> Server

Von der Serverseite:

Client -> Proxy -> Server

Ich denke also, wenn es von einem Client-Benutzer eingerichtet wurde - es wird als Proxy bezeichnet -, wenn es von einem Server-Manager eingerichtet wurde, ist es ein Reverse-Proxy.

Da die Zwecke und Gründe für die Einrichtung unterschiedlich sind, werden Daten unterschiedlich behandelt und unterschiedliche Software verwendet.

   User side          |      Server side
client  <->  proxy  <-->  reverse_proxy <-> real server
Winzling
quelle
Es wäre besser, wenn seine grafische Darstellung aber netten Inhalt. @ Winzling
Narendra
3

Aus Sicht des Benutzers: Beim Senden einer Anfrage an einen Proxy- oder Reverse-Proxy- Server:

  • Proxy - erfordert zwei Argumente :

    1) was zu bekommen ist und 2) welchen Proxy-Server ein Intermediate verwenden soll

  • Reverse Proxy - erfordert ein Argument :

    1) was zu bekommen

Ein Reverse-Proxy ruft Inhalte von einem anderen Server ab, ohne dass der Benutzer dies weiß, und gibt das Ergebnis so zurück, als stamme es vom Reverse-Proxy-Server .

pspi
quelle
1

Die meisten der vorherigen Antworten sind gut, aber meiner Meinung nach kommt keine der "umgekehrten" Qualität, die die beiden unterscheidet, sehr nahe. Um dies zu tun, muss eine Möglichkeit zur Visualisierung der "umgekehrten" Natur dessen, was im Wesentlichen dasselbe ist (ein Proxy), gegeben werden, und es muss auf eine gut abstrahierte Weise gegeben werden.

Ein Proxy (implizit "Forward-Proxy") verbindet mehrere lokale Clients mit einem beliebigen Remote-Server:

c--
   |--p--s
c--

Ein Reverse Proxy verbindet mehrere lokale Server mit einem Remote-Client (beachten Sie, wie sich das Layout umkehrt):

s--
   |--p--c
s--

Es ist eine Frage der Perspektive, das Konzept wirklich und richtig zu verstehen, und erfordert, nicht wesentliche (für das jeweilige Konzept) Details zu abstrahieren, obwohl sie für die Pragmatik der Proxy-Operation sehr wichtig sein können. Zu diesen Details gehört die Tatsache, dass in beiden Szenarien mehrere Clients eine Verbindung zu mehreren Servern herstellen, dass Clients und Server möglicherweise nicht wirklich lokal oder remote sind, wo sich die Internet-Cloud befindet oder welche Art von Sichtbarkeit zwischen Client und Server besteht.

Fotios Basagiannis
quelle
"Mehrere lokale Server für einen Remote-Client" - hm, warum nicht mehrere Server für mehrere Clients? Ich meine - der Server selbst stellt sowieso keine Verbindung zu Clients her, er reagiert nur auf Clientanforderungen, egal ob es sich um mehrere Clients oder denselben einzelnen Client handelt.
JustAMartin
Lesen Sie noch einmal - insbesondere den letzten Absatz und versuchen Sie, "einen beliebigen Remote-Client" als eine von vielen Instanzen der Operation zu verstehen
Fotios Basagiannis
Der Text ist in Ordnung, nur das zweite Diagramm ließ mich plötzlich denken: "Hey, wohin ist der andere Kunde gegangen?" als ich es mit dem ersten Diagramm verglichen habe.
JustAMartin
Ja, das liegt daran, dass dieser Kunde keiner der beiden anderen ist. Entwickler neigen dazu, sehr konkret und spezifisch zu denken, da dies hilfreich ist, wenn Sie Dinge implementieren. Dieselbe Denkweise ist jedoch nicht sehr hilfreich, wenn Sie über Abstraktionen nachdenken.
Fotios Basagiannis