Jaka jest różnica między serwerem proxy a serwerem zwrotnego serwera proxy?

1773

Jaka jest różnica między serwerem proxy a serwerem zwrotnego serwera proxy?

Peter Mortensen
źródło
51
Jest to również dobrze wyjaśnione w dokumentach Apache .
Paolo,
3
@Paolo, co znacznie ułatwiło zrozumienie niż artykuł w Wikipedii. Być może powinienem w końcu zająć się edytowaniem niektórych z tych informacji w artykule w Wikipedii ...
RastaJedi
Powiedzmy, że mam hosta A, który musi połączyć się z hostem C, ale nie ma go bezpośrednio. Zamiast tego jest skonfigurowany jako wpis z hostem lub ewentualnie dns, do wywołania B, które przekazuje żądanie do C. C nie obchodzi lub nie wie o B. Czy jest to proxy proxy lub zwrotnego proxy?
Daniel Leach,
Jeśli host A nie może uzyskać dostępu do hosta C bez skonfigurowania pierwszego kontaktu z hostem B, wówczas host B jest tradycyjnym serwerem proxy przesyłania dalej lub „wychodzącym”.
TaylorMonacelli
5
Przekazywanie proxy zapewnia anonimowość klienta (tj. Myślę Tor). Odwrotne proxy nadają anonimowość serwerom zaplecza (tj. Uważają serwery za DMZ).
8bitjunkie

Odpowiedzi:

2969

Poprzednie odpowiedzi były dokładne, ale być może zbyt zwięzłe. Spróbuję dodać kilka przykładów.

Przede wszystkim słowo „pełnomocnik” opisuje kogoś lub coś działającego w imieniu innej osoby.

W dziedzinie komputerów mówimy o jednym serwerze działającym w imieniu innego komputera.

Ze względu na dostępność ograniczę się do dyskusji na serwerach proxy - jednak idea proxy nie ogranicza się do stron internetowych.

FORWARD proxy

Większość dyskusji na temat serwerów proxy internetowych dotyczy typu serwera proxy znanego jako „proxy proxy”.

W tym przypadku zdarzenie proxy polega na tym, że „forward proxy” pobiera dane z innej strony internetowej w imieniu pierwotnego requestera.

Opowieść o 3 komputerach (część I)

Na przykład wymienię trzy komputery podłączone do Internetu.

  • X = Twój komputer lub komputer „kliencki” w Internecie
  • Y = strona internetowa proxy, proxy.example.org
  • Z = strona internetowa, którą chcesz odwiedzić, www.example.net

Zwykle łączy się bezpośrednio z X --> Z.

Jednak w niektórych sytuacjach lepiej jest Y --> Zw imieniu X, których łańcuchy w następujący sposób: X --> Y --> Z.

Powody, dla których X chciałby korzystać z serwera proxy przesyłania dalej:

Oto (bardzo) częściowa lista zastosowań przekazywania serwera proxy:

  • 1) X nie może uzyskać bezpośredniego dostępu do Z, ponieważ

    • a) Osoba posiadająca uprawnienia administracyjne do Xpołączenia internetowego postanowiła zablokować dostęp do strony Z.

      • Przykłady:

        • Wirus Storm Worm rozprzestrzenia się, nakłaniając ludzi do odwiedzin familypostcards2008.com, więc administrator systemu zablokował dostęp do witryny, aby zapobiec przypadkowemu zarażeniu się przez użytkowników.

        • Pracownicy dużej firmy tracą zbyt wiele czasu facebook.com, więc zarząd chce zablokować dostęp w godzinach pracy.

        • Lokalna szkoła podstawowa zabrania dostępu do strony playboy.cominternetowej.

        • Rząd nie jest w stanie kontrolować publikowania wiadomości, więc zamiast tego kontroluje dostęp do wiadomości, blokując witryny takie jak wikipedia.org. Zobacz TOR lub FreeNet .

    • b) Administrator Zzablokował X.

      • Przykłady:

        • Administrator Z zauważył próby włamania pochodzące od X, więc administrator postanowił zablokować adres IP X (i / lub netrange).

        • Z to strona internetowa forum. Xspamuje forum. Z bloków X.

ODWRÓCONY proxy

Opowieść o 3 komputerach (część II)

W tym przykładzie wymienię trzy komputery podłączone do Internetu.

  • X = Twój komputer lub komputer „kliencki” w Internecie
  • Y = strona internetowa odwrotnego proxy, proxy.example.com
  • Z = strona internetowa, którą chcesz odwiedzić, www.example.net

Zwykle łączy się bezpośrednio z X --> Z.

Jednak w niektórych scenariuszach administrator lepiej jest Zograniczyć lub zabronić bezpośredniego dostępu i zmusić odwiedzających do przejścia przez Y w pierwszej kolejności. Tak, jak poprzednio, mamy dane pobierane przez Y --> Zw imieniu X, których łańcuchy w następujący sposób: X --> Y --> Z.

Tym razem różni się od „forward proxy”, że tym razem użytkownik Xnie wie, że uzyskuje dostęp Z, ponieważ użytkownik Xwidzi tylko to, z kim się komunikuje Y. Serwer Zjest niewidoczny dla klientów i tylko odwrotne proxy Yjest widoczne z zewnątrz. Odwrotny serwer proxy nie wymaga konfiguracji (proxy) po stronie klienta.

Klient Xmyśli, że komunikuje się tylko z Y( X --> Y), ale w rzeczywistości Yprzekazuje całą komunikację ( X --> Y --> Zponownie).

Powody, dla których Z chce skonfigurować odwrotny serwer proxy:

  • 1) Z chce zmusić cały ruch do swojej strony internetowej, aby najpierw przechodził przez Y.
    • a) Z ma dużą stronę internetową, którą miliony ludzi chcą zobaczyć, ale pojedynczy serwer nie jest w stanie obsłużyć całego ruchu. Tak więc Z konfiguruje wiele serwerów i umieszcza w Internecie odwrotne proxy, które wyśle ​​użytkowników na najbliższy serwer, gdy będą chcieli odwiedzić Z. Jest to część tego, jak działa koncepcja sieci dystrybucji treści (CDN).
  • 2) Administrator Z martwi się odwetem za treści hostowane na serwerze i nie chce ujawniać głównego serwera bezpośrednio opinii publicznej.
    • a) Właściciele marek spamowych, takich jak „Canadian Pharmacy”, wydają się mieć tysiące serwerów, podczas gdy w rzeczywistości większość witryn jest hostowanych na znacznie mniejszej liczbie serwerów. Ponadto skargi na nadużycia dotyczące spamu wyłączą tylko serwery publiczne, a nie główny serwer.

W powyższych scenariuszach Zma możliwość wyboru Y.

Linki do tematów z postu:

Sieć dostarczania treści

Prześlij oprogramowanie proxy (po stronie serwera)

Oprogramowanie odwrotnego proxy dla HTTP (po stronie serwera)

Oprogramowanie odwrotnego proxy dla TCP (po stronie serwera)

Zobacz też:

qyb2zm302
źródło
1
TAM (tivoli access manager) to także odwrotny serwer proxy, prawda?
Clark Bao
2
Koncepcyjnie moglibyśmy zatem odnosić się do „odwrotnego proxy” lub myśleć o „zastępczym” proxy?
Thomas
3
„który wyśle ​​użytkowników na najbliższy serwer” - jaki jest sens? Cały ruch będzie przechodził przez ten serwer proxy, prawda? Nie ma więc znaczenia, gdzie znajduje się za nim „lokalny” serwer. Czy coś mi brakuje?
Pavel
2
@Pavel prawdopodobnie „najbliższy serwer” nie jest najlepszym opisem. Lepszy opis to bardziej „rozłożenie obciążenia na pulę serwerów”. W tym przykładzie opisano moduł równoważenia obciążenia zwrotnego proxy.
JDS
6
To był klucz do mnie: - przód: (X --> Y) --> Zodwrotnej: X --> (Y --> Z).
Druckles,
538

Para prostych definicji to:

Przekazywanie proxy: działanie w imieniu wnioskodawcy (lub usługobiorcy)

Odwrotny serwer proxy: działając w imieniu producenta usługi / treści.

Krishna Bheemanakatte
źródło
413

Poniższy schemat okazał się bardzo pomocny. To po prostu pokazuje architekturę konfiguracji proxy do przodu i do tyłu z klienta na serwer przez Internet. Ten obraz pomoże ci lepiej zrozumieć odpowiedź qyb2zm302 i inne odpowiedzi.

Forward Proxy vs Reverse Proxy

Można również oglądać ten film z F5 „s DevCentral Peter Silva.

Źródło zdjęcia: Quora . Jednak, jak za Martijn Pieters , ten obraz może być z Pulse Bezpieczne Wspólnoty lub Julien Pauli miejsce (po francusku) na developpez.com.

Przypomniało mi to klasyczne przysłowie:

Obraz jest wart 1000 słów.

Nishant
źródło
9
To naprawdę wszystko, na co musisz spojrzeć. Konfigurowanie serwera proxy w przeglądarce, aby Netflix nie wiedział, w jakim kraju się znajdujesz, jest to serwer proxy; usługa nadrzędna, która kieruje przychodzące żądanie (być może chcesz wysłać jedno żądanie do dwóch serwerów), to zwrotny serwer proxy.
Kyle Chadha,
5
Forward proxy może być również w Internecie
Mac
7
Najlepsze zdjęcie w ostatniej odpowiedzi. Dzięki. :) Odwrotny serwer proxy jest również znany jako „Load Balancer” i działa po stronie serwera (dystrybuuje obciążenie na różne serwery), podczas gdy proxy do przodu obsługuje stronę klienta.
codepleb
1
Autor quora nie jest oryginalnym autorem obrazu, ponieważ ta strona z 2013 roku z jedną wersją jest o rok starsza.
Martijn Pieters
1
Być może ten samouczek z języka francuskiego z 2009 roku jest źródłem; w kopii archiwum internetowego z 2009 r. występują problemy z javascript (ciągłe przekierowania), a obrazy zostały zarchiwizowane dopiero w 2017 r., ale źródło odwołuje się do tych samych adresów URL obrazów, co późniejsze źródła.
Martijn Pieters
230

Forward Proxy vs. Reverse Proxy (2012) bardzo wyraźnie wyjaśnia różnicę między proxy a forwardem.

Odpowiedź qyb2zm302 ładnie szczegółowo opisuje zastosowania serwerów proxy, ale wymyka się podstawowej koncepcji między serwerami proxy do przodu i do tyłu. Dla odwrotnego proxy, X → Y → Z, X wie o Y, a nie Z, a nie odwrotnie.

Serwer proxy jest po prostu pośrednikiem w komunikacji (wnioski + odpowiedzi). Klient <-> Serwer proxy <-> Serwer

  • Klient proxy: ( klient <-> proxy ) <-> serwer

Serwer proxy działa w imieniu klienta. Klient wie o wszystkich trzech maszynach zaangażowanych w łańcuch. Serwer nie.

  • Serwer proxy: klient <-> ( serwer proxy <-> serwer )

Serwer proxy działa w imieniu serwera. Klient wie tylko o proxy. Serwer zna cały łańcuch.

Wydaje mi się, że przekazywanie do przodu i do tyłu to po prostu mylące, zależne od perspektywy nazwy dla proxy klienta i serwera . Sugeruję porzucenie pierwszego dla drugiego, dla wyraźnej komunikacji.

Oczywiście, aby jeszcze bardziej skomplikować sprawę, nie każda maszyna jest wyłącznie klientem lub serwerem. Jeśli w kontekście występuje dwuznaczność, najlepiej jest wyraźnie określić, gdzie znajduje się serwer proxy i komunikację, którą tuneluje.

Protongun
źródło
3
Ta odpowiedź jest zgodna z httpd.apache.org/docs/2.0/mod/mod_proxy.html#forwardreverse i pomaga w jasnym wyjaśnieniu
Greg Woods,
7
wydaje się, że najbardziej istotną cechą tego porównania jest kto-kto-kto. forward proxy: klient zna zarówno proxy (w rzeczywistości ma skonfigurowane), jak i serwer docelowy (ponieważ wysyła żądanie do adresu URL serwera), podczas gdy w przypadku proxy zwrotnego klient zna proxy jako serwer docelowy (to nie wie, co faktycznie wywołuje serwer proxy; może to być jeden serwer lub więcej). z serwerem proxy do przekazywania serwer nie wie, kim naprawdę są klienci, ponieważ serwer proxy „przesyła” do niego żądanie. forward proxy: ukryj klienta (ów). zwrotny serwer proxy: ukryj serwer (y).
Belun,
@Protongun „.. Serwer proxy jest po prostu pośrednikiem w komunikacji (prośby + odpowiedzi) ..” Jaka jest potrzeba serwera proxy na pierwszym miejscu? Proszę o wyjaśnienie. IMHO ta odpowiedź powinna być zaakceptowana
vikramvi
Pierwszy link w tym poście ułatwia wszystkim zrozumienie
Legends
@ Belun Dobrze wyjaśnione w najprostszych słowach / terminach.
Ilangeeran,
129

Niektóre diagramy mogą pomóc:

Przekaż proxy

Przekaż proxy

Odwrotny serwer proxy

Odwrotny serwer proxy

Maria Ines Parnisari
źródło
8
Czy to jest Wyglądają tak samo! Co jest takiego specjalnego w przepisywaniu odpowiedzi, która czyni proxy „odwrotnym” proxy?
8bitjunkie
2
@ 8bitjunkie Chodzi o perspektywę. Zauważ, że w przypadku serwera proxy przekazywania klient wie, że komunikuje się z serwerem proxy. W przypadku odwrotnego proxy klient myśli, że komunikuje się bezpośrednio z home.com. Serwery proxy mają również różne implementacje. Odwrotne proxy może być dość głupie. Wystarczy zmienić adres i przekazać połączenie. Więcej logiki sieci na kliencie, mniej na serwerze proxy. Z drugiej strony proxy przekazywania musi wiedzieć, że żądanie proxy.com () wymaga połączenia z service.com. Mniej logiki sieci na kliencie, więcej na serwerze proxy.
Kevin
1
Co należy rozumieć przez „ przetłumacz mójhome.myhosting.com na hom.com” Nie rozumiem części dotyczącej tłumaczenia. Jak przepisać część nagłówka odpowiedzi czy coś?
1252748,
Również jednym z powodów odwrotnego proxy (w oparciu o to, co zrozumiałem z zaakceptowanej odpowiedzi) jest to, że celem tego jest podzielenie dużego ruchu przychodzącego między wiele serwerów. Gdzie to się dzieje? Czy to kolejna „reguła przychodząca”?
1252748,
@ 1252748 około 1), tłumaczenie oznaczałoby po prostu mapowanie adresów URL i wysłanie żądania do odpowiedniego adresu URL. około 2), tak, możesz tak skonfigurować serwer, aby na przykład używał round robin do równoważenia obciążenia między serwerami.
Maria Ines Parnisari
72

Różnica polega przede wszystkim na wdrożeniu. Wszystkie serwery proxy do przesyłania dalej i wstecz mają takie same funkcje podstawowe. Akceptują żądania HTTP w różnych formatach i udzielają odpowiedzi, zwykle uzyskując dostęp do serwera źródłowego lub kontaktowego.

W pełni funkcjonalne serwery zwykle mają kontrolę dostępu, buforowanie i niektóre funkcje mapowania łączy.

Przekazywany serwer proxy to serwer proxy, do którego dostęp uzyskuje się poprzez skonfigurowanie komputera klienckiego. Klient potrzebuje obsługi protokołu dla funkcji proxy (przekierowanie, uwierzytelnianie proxy itp.). Serwer proxy jest przezroczysty dla wygody użytkownika, ale nie dla aplikacji.

Odwrotny serwer proxy to serwer proxy, który jest wdrażany jako serwer WWW i zachowuje się jak serwer WWW, z tym wyjątkiem, że zamiast lokalnego komponowania treści z programów i dysku, przekazuje żądanie do serwera źródłowego. Z perspektywy klienta jest to serwer sieciowy, więc wrażenia użytkownika są całkowicie przejrzyste.

W rzeczywistości pojedyncza instancja proxy może działać jednocześnie jako proxy do przodu i do tyłu dla różnych populacji klientów.

benc
źródło
Tylko dla pewności, że proxy do przodu jest po stronie klienta, a proxy do tyłu po stronie serwera?
Yves
4
@yves. proxy to także serwer. Wystarczy, że klient potrzebuje lokalnej konfiguracji, aby mógł się komunikować. Natomiast odwrotne proxy wymaga konfiguracji na samym serwerze. Ich fizyczne węzły znajdują się po „stronie serwera”.
Adib Aroui
Tylko dla ogólnych informacji, nie wszystkie proxy mogą działać jako przekazywanie do przodu i do tyłu, np. SOCKS może, ale nie proxy HTTP.
RastaJedi
60

Proxy: wysyła żądanie w imieniu klienta . Tak więc serwer zwróci odpowiedź do serwera proxy, a serwer proxy prześle odpowiedź do klienta. W rzeczywistości serwer nigdy nie „dowie się”, kim był klient (adres IP klienta); będzie znać tylko proxy. Jednak klient zdecydowanie zna serwer, ponieważ zasadniczo formatuje żądanie HTTP przeznaczone dla serwera, ale po prostu przekazuje je proxy.

Wpisz opis zdjęcia tutaj

Odwrotny serwer proxy: odbiera żądanie w imieniu serwera . Przekazuje żądanie do serwera, odbiera odpowiedź, a następnie zwraca odpowiedź klientowi. W takim przypadku klient nigdy nie „dowie się”, kto był rzeczywistym serwerem (adres IP serwera) (z pewnymi wyjątkami); będzie znać tylko proxy. Serwer będzie lub nie będzie znać rzeczywistego klienta, w zależności od konfiguracji zwrotnego proxy.

Wpisz opis zdjęcia tutaj

Dimos
źródło
6
Wydaje mi się, że mógłbym skopiować i wkleić twoje definicje wstecz i że nadal byłyby prawdziwe. Nie sądzę, żeby to wyjaśniało jakąkolwiek kluczową różnicę lub wyjaśniało, co jest takiego „odwrotnego” w przypadku odwrotnego proxy?
8bitjunkie
6
Pełnomocnik zawsze będzie działał w imieniu kogoś (ukrywając swoją tożsamość przed drugą stroną). „Odwrócenie” odnosi się do odwrócenia strony, która jest „ukryta”, przy czym jest to klient w pierwszym przypadku (zwykłe proxy) i serwer w drugim przypadku (odwrotne proxy). Rzeczywiście, terminów tych można używać zamiennie, to tylko kwestia konwencji, która wybrała pierwszy przypadek jako zwykłego pełnomocnika (prawdopodobnie z przyczyn historycznych). Mam nadzieję, że to ma sens.
Dimos,
43

Najlepszym wyjaśnieniem są tutaj diagramy:

Podczas gdy przekierowujące proxy proxy w imieniu klientów ( lub żądających hostów ) , zwrotne proxy proxy w imieniu serwerów.

W efekcie, podczas gdy proxy do przodu ukrywa tożsamości klientów, proxy do tyłu ukrywa tożsamości serwerów.

Farhan
źródło
38

Serwer proxy proxy (i opcjonalnie buforuje) wychodzące żądania sieciowe do różnych niekoniecznie powiązanych zasobów publicznych w Internecie. Odwrotny serwer proxy przechwytuje (i opcjonalnie buforuje) przychodzące żądania z Internetu i dystrybuuje je do różnych wewnętrznych zasobów prywatnych, zwykle w celu zapewnienia wysokiej dostępności.

Ignacio Vazquez-Abrams
źródło
28

Proxy (Forward Proxy):

Gdy komputery w sieci LAN łączą się z serwerem proxy, który uzyskuje dostęp do Internetu. Korzyści obejmują tylko serwer narażony na działanie Internetu. Ludzie z zewnątrz nie mają bezpośredniego dostępu do komputerów. Przekazywanie serwerów proxy może poprawić dostęp użytkowników do Internetu poprzez buforowanie pobranych plików. Można ich również użyć do ograniczenia dostępu do niektórych stron. Ponadto tylko serwer proxy potrzebuje adresu publicznego, a nie klientów łączących się z nim.

Odwrotny serwer proxy:

Odwrotny serwer proxy jest przeciwieństwem serwera proxy do przodu. Zamiast tego działa jako serwer proxy w imieniu podłączanych serwerów. Zamiast bezpośredniego dostępu do zdalnego serwera użytkownik przejdzie przez zwrotny serwer proxy i stamtąd zostanie skierowany do odpowiedniego serwera. Tylko zwrotny serwer proxy wymagałby certyfikatu SSL, potrzebny byłby tylko jeden publiczny adres IP i może on obsługiwać równoważenie obciążenia przychodzących żądań w celu zwiększenia ogólnej wygody użytkownika.

Wpisz opis zdjęcia tutaj

Źródło obrazu: Tworzenie przekazywania proxy za pomocą routingu żądań aplikacji

JSON C11
źródło
3
IMHO, najprostsza / najlepsza odpowiedź.
Vinicius Gonçalves,
12

Z punktu widzenia Apache rozumiem, że proxy oznacza, że ​​jeśli witryna x proxy dla witryny y, to żądania x zwracają y.

Odwrotny serwer proxy oznacza, że ​​odpowiedź od y jest dostosowywana, tak że wszystkie odniesienia do y stają się x.

Aby użytkownik nie mógł powiedzieć, że jest zaangażowany serwer proxy ...

Chris Kimpton
źródło
10

Zgodnie z moim zrozumieniem ...

Na początek, jak wszyscy wiedzą, proxy oznacza „uprawnienie do reprezentowania kogoś innego”. Teraz są dwie rzeczy: proxy i forward.

Przekaż proxy

Załóżmy, że chcesz uzyskać dostęp do „Google”, a „Google” będzie miało n liczby serwerów, które odpowiedzą na to konkretne żądanie.

Teraz w tym przypadku, gdy prosisz o coś od Google i nie chcesz, aby Google widział Twój adres IP, będziesz używać przekazywania dalej, jak wyjaśniono poniżej.

A → B → C

Teraz jesteś A, wysyłając zapytanie przez B. Więc C pomyśli, że żądanie pochodzi od B, a nie A. W ten sposób możesz zapobiec, aby adres IP twoich klientów nie był narażony na świat zewnętrzny.

Odwrotny serwer proxy

Teraz w tym przypadku, aby Cię zrozumieć, weźmiemy ten sam przypadek przekazywania dalej proxy. Tutaj poprosiłeś o coś do Google, który z kolei wyśle ​​jedno żądanie do serwera aplikacji lub innego serwera proxy, aby uzyskać odpowiedź. Tak się stanie, jak wyjaśniono poniżej.

A → B → C

C → D

C ← D

A ← B ← C

Z powyższego schematu widać, że żądanie zostało wysłane do C z B, a nie z A. Następnie z C będzie jedno żądanie wysłane do D. Podobnie odpowiedź trafi do C z D, a następnie do B i A.

Powyższy diagram mówi, że liczy się tylko kontekst, chociaż oba serwery proxy działają w ten sam sposób, ale serwer proxy po stronie klienta ukrywa informacje o kliencie, podczas gdy serwer proxy po stronie ukrywa informacje po stronie serwera.

Sourabh Sharma
źródło
10

Przekazywanie proxy zapewnia anonimowość klienta (tj. Myślę Tor ).

Odwrotne proxy nadają anonimowość serwerom zaplecza (tj. Uważają serwery za DMZ).

8bitjunkie
źródło
9

Oto przykład odwrotnego proxy (jako modułu równoważenia obciążenia).

Klient surfuje po witrynie website.com, a serwer, na który trafia, ma działające na nim odwrotne proxy. Odwrotnym proxy jest Funt . Funt przyjmuje żądanie i wysyła je do jednego z trzech serwerów aplikacji za nim siedzących. W tym przykładzie funt jest modułem równoważącym obciążenie. Oznacza to równoważenie obciążenia między trzema serwerami aplikacji.

Serwery aplikacji podają treść strony internetowej z powrotem do klienta.

ae.
źródło
8

Przekazywany serwer proxy służy użytkownikom : pomaga użytkownikom uzyskać dostęp do serwera .

Odwrotny serwer proxy służy serwerowi : chroni serwer przed użytkownikami .

HoangYell
źródło
4

Jeśli nie ma proxy

Widok po stronie klienta i serwera jest taki sam:

Klient -> Serwer

Pełnomocnik

Po stronie klienta:

Klient -> proxy -> Serwer

Po stronie serwera:

Klient -> Serwer

Odwrotny serwer proxy

Po stronie klienta:

Klient -> Serwer

Po stronie serwera:

Klient -> proxy -> Serwer

Myślę więc, że jeśli jest skonfigurowany przez użytkownika klienta, to nazywa się proxy, jeśli jest skonfigurowany przez menedżera serwera, jest to odwrotne proxy.

Ponieważ cele i powody konfiguracji są różne, zajmują się danymi na różne sposoby i używają innego oprogramowania.

   User side          |      Server side
client  <->  proxy  <-->  reverse_proxy <-> real server
tinyhare
źródło
Byłoby lepiej, gdyby jego reprezentacja graficzna, ale ładna treść. @ Tinyhare
Narendra
3

Patrząc z perspektywy użytkownika: wysyłając zapytanie do serwera proxy lub odwrotnego serwera proxy :

  • proxy - wymaga dwóch argumentów :

    1) co uzyskać i 2) który serwer proxy ma korzystać z pośrednika

  • zwrotny serwer proxy - wymaga jednego argumentu :

    1) co uzyskać

Odwrotny serwer proxy pobiera zawartość z innego serwera bez wiedzy użytkownika i zwraca wynik tak, jakby pochodził z serwera odwrotnego serwera proxy .

pspi
źródło
1

Większość wcześniejszych odpowiedzi jest dobra, ale moim zdaniem żadna z nich nie jest wystarczająco blisko do rozwiązania wystarczająco „odwrotnej” jakości, która różnicuje te dwie cechy. Aby to zrobić, należy podać jakiś sposób wizualizacji „odwrotnej” natury tego, co jest zasadniczo tym samym (proxy), i należy go podać w sposób abstrakcyjny.

Proxy (domyślnie „forward proxy”) łączy wielu klientów lokalnych na danym serwerze zdalnym:

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

Reverse proxy łączy wiele serwerów lokalnych któregokolwiek zdalnego klienta (Zauważ, że odwraca layout):

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

Jest to kwestia perspektywy naprawdę i właściwe zrozumienie pojęcia wymaga wyodrębnienia nieistotnych (dla konkretnej koncepcji) szczegółów, chociaż mogą one być bardzo ważne, jeśli chodzi o pragmatykę działania proxy. Takie szczegóły obejmują fakt, że w obu scenariuszach rzeczywistość jest taka, że ​​wielu klientów łączy się z wieloma serwerami, że klienci i serwery mogą tak naprawdę nie być lokalni lub zdalni, gdzie znajduje się chmura internetowa lub jaki jest rodzaj widoczności między klientem a serwerem.

Fotios Basagiannis
źródło
„wiele serwerów lokalnych dla jednego zdalnego klienta” - hm, dlaczego nie wiele serwerów dla wielu klientów? Mam na myśli - sam serwer i tak nie łączy się z klientami, odpowiada tylko na wszelkie żądania klientów, bez względu na to, czy jest to wielu klientów, czy ten sam pojedynczy klient.
JustAMartin
Przeczytaj jeszcze raz - zwłaszcza ostatni akapit i spróbuj zrozumieć „dowolnego klienta zdalnego” jako jeden z wielu przypadków działania
Fotios Basagiannis
Tekst jest w porządku, po prostu drugi diagram kazał mi nagle pomyśleć „hej, gdzie poszedł drugi klient?” kiedy porównałem to do pierwszego schematu.
JustAMartin
Tak, ponieważ ten klient nie jest żadnym z pozostałych dwóch. Deweloperzy zwykle myślą bardzo konkretnie i konkretnie, ponieważ pomaga to w implementacji rzeczy, jednak ten sam sposób myślenia nie jest bardzo pomocny w przypadku abstrakcji.
Fotios Basagiannis,