Co to forward proxy i reverse proxy?

Z pojęciami forward proxy oraz reverse proxy będziemy spotykać się na każdym kroku. Zanim zaczniemy się wgłębiać w temat, odpowiedźmy sobie na kluczowe pytanie – czym jest proxy? Najprościej mówiąc, jest to serwer bądź oprogramowanie pośredniczące w przepływie ruchu internetowego, czyli np. wykonujące za nas żądania HTTP. Istnieją dwa rodzaje proxy – forward proxy oraz reverse proxy.

Forward proxy

Napotykając się na termin „proxy” w dokumentacjach czy artykułach, autorzy najpewniej będą mieć na myśli pojęcie forward proxy. Zapewnia on pojedynczym lub wielu klientom dostęp do usługi proxy we wspólnej sieci wewnętrznej. Usługa ta działa jako pośrednik, który w imieniu klientów wykonuje zadania poprzez sieć internet. Oznacza to, że każde żądanie zanim dotrze do serwera, przechodzi najpierw przez serwer Proxy, który następnie je wykonuje. Ilustruje to poniższy rysunek.

+---------------------------------------------------------------+
|                                                               |
|   Klient 1  -+                                +--> Serwer 1   |
|   Klient 2  -+--> Forward Proxy --> Internet -+--> Serwer 2   |
|   Klient 3  -+                                +--> Serwer 3   |
|                                                               |
+---------------------------------------------------------------+

Co ciekawe, nie wszystkie żądania przesłane do serwera forward proxy mogą być dozwolone. To, czy serwer je odrzuci, zależy od jego konfiguracji.

W przypadku dostania odpowiedzi przez serwer proxy, zwraca on odpowiedź do klienta. Z punktu bezpieczeństwa serwery proxy mają głównie na celu anonimizowanie użytkownika dla serwera końcowego. Istnieje jednak inne, ważne zastosowanie dla serwerów proxy – jest to wykorzystywanie ich do web proxy cachining. Polega ono na przechowywaniu kopii często używanych danych internetowych (min.: dokumentów, obrazów i artykułów), aby szybciej dostarczać je wielu użytkownikom.

Reverse proxy

Reverse proxy, jak sama nazwa wskazuje, jest odwrotnością forward proxy. Forward proxy działa w imieniu użytkowników, gdzie reverse proxy działa w imieniu serwerów backendowych. Reverse proxy były początkowo używane do zrównoważenia obciążenia w aplikacji (czyli load balancera) i osiągnięcia wysokiej dostępności (High availability). Jak określa ją wikipedia?

System wysokiej niezawodności (SWN), system wysokiej dostępności − systemy informatyczne charakteryzujące się odpowiednio dostosowywaną: niezawodnością, dostępnością, wydajnością do specyficznych, zwykle krytycznych, zastosowań danego systemu.

Wikiepdia

Reverse proxy odbiera od klientów rządzania, a następnie przekazuje zapytania do serwerów backendowych. Kiedy otrzyma odpowiedź, serwuje ją klientom. Całość ilustruje poniższy rysunek.


+---------------------------------------------------------------+
|                                                               |
|   Klient 1  -+                                +--> Serwer 1   |
|   Klient 2  -+--> Internet --> Reverse Proxy -+--> Serwer 2   |
|   Klient 3  -+                                +--> Serwer 3   |
|                                                               |
+---------------------------------------------------------------+

Do najbardziej rozpoznawalnych serverów reverse proxy dla komunikacji HTTP należy nginx.

Podsumowanie

Podsumowując cały artykuł, główna różnica, którą możemy dostrzec między oboma proxy to to, że forward proxy anonimizuje tożsamość klientów, z kolei reverse proxy ukrywa tożsamość serwerów końcowych (backendowych), z którymi komunikuje się w imieniu użytkowników.

Źródła

https://nginx.org/
https://stackoverflow.com/questions/224664/whats-the-difference-between-a-proxy-server-and-a-reverse-proxy-server
ttps://dltlabs.medium.com/demystifying-forward-and-reverse-proxies-e52eea330e85
https://www.websense.com/content/support/library/web/v773/wcg_help/proxy2.aspx

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.