Reverse Proxy
Reverse proxy to serwer pośredniczący, który stoi przed jednym lub wieloma serwerami aplikacyjnymi i w ich imieniu przyjmuje żądania od klientów z internetu. Dla użytkownika reverse proxy jest jedynym widocznym punktem wejścia — to z nim nawiązuje połączenie, a co dzieje się dalej w infrastrukturze, pozostaje ukryte. Dzięki temu backend jest odizolowany od bezpośredniego kontaktu z siecią publiczną.
Jak działa reverse proxy?
Klient wysyła żądanie na adres, pod którym nasłuchuje reverse proxy. Ten analizuje żądanie i przekazuje je do odpowiedniego serwera zaplecza (upstream), po czym odbiera odpowiedź i zwraca ją klientowi. Przy okazji może wykonać szereg zadań:
- terminacja SSL — odszyfrowanie ruchu HTTPS w jednym miejscu, odciążając serwery aplikacyjne,
- równoważenie obciążenia — rozdzielanie żądań między wiele instancji (funkcja load balancera),
- buforowanie — serwowanie zapisanych w cache odpowiedzi bez angażowania backendu,
- kompresja i optymalizacja nagłówków oraz treści,
- ochrona — ukrycie topologii i filtrowanie złośliwych żądań.
Najpopularniejsze oprogramowanie pełniące tę rolę to nginx, HAProxy, Apache czy Traefik.
Zastosowanie w praktyce
Reverse proxy jest niemal wszechobecny w nowoczesnych architekturach webowych. Umożliwia hostowanie wielu aplikacji na jednym adresie IP (kierowanie po nazwie domeny), centralne zarządzanie certyfikatami, bezpieczne wystawianie usług działających w kontenerach oraz płynne wdrożenia bez przerw. W praktyce przed aplikacją stawia się warstwę reverse proxy, która terminuje HTTPS i rozdziela ruch na węzły backendu — typowy element konfiguracji przy uruchamianiu aplikacji na serwerze VPS. Rolę reverse proxy pełni też często sieć CDN, działając jako globalna warstwa buforująca przed serwerem źródłowym.
Powiązane pojęcia
Najczęstsze pytania
Czym różni się reverse proxy od zwykłego proxy?
Zwykłe proxy (forward proxy) działa po stronie klienta i pośredniczy w jego żądaniach do internetu, ukrywając klienta. Reverse proxy działa po stronie serwera i pośredniczy w żądaniach kierowanych do aplikacji, ukrywając infrastrukturę backendu przed użytkownikami.
Czy reverse proxy to to samo co load balancer?
Nie do końca. Load balancer to jedna z funkcji, którą reverse proxy może pełnić — rozdzielanie ruchu między serwery. Reverse proxy robi jednak więcej: terminuje SSL, cache'uje treści, kompresuje odpowiedzi i filtruje żądania.
