Reverse proxy to serwer pośredniczący między użytkownikami a Twoim serwerem aplikacji – przyjmuje żądania z internetu i przekazuje je do właściwego backendu. Load balancer to reverse proxy, który rozdziela ruch między wiele serwerów, żeby żaden nie był przeciążony. Gdy masz stronę na Nginx i backend na PHP-FPM, Node.js lub Python/Gunicorn – Nginx pełni rolę reverse proxy. Cloudflare to globalny reverse proxy + CDN.
Spis treści
ToggleReverse proxy – jak działa
Bez reverse proxy: użytkownik łączy się bezpośrednio z serwerem aplikacji (np. Node.js na porcie 3000). Serwer aplikacji obsługuje: SSL, kompresję, statyczne pliki, rate limiting + logikę aplikacji. Za dużo zadań na raz.
Z reverse proxy: użytkownik łączy się z reverse proxy (np. Nginx na porcie 443). Nginx obsługuje: SSL/TLS termination, kompresję Gzip/Brotli, serwowanie statycznych plików (CSS, JS, obrazy), cache, rate limiting, HTTP/2. Żądania dynamiczne: Nginx przekazuje do backendu (PHP-FPM, Node.js, Gunicorn) → backend przetwarza → zwraca odpowiedź → Nginx odsyła użytkownikowi.
Backend „nie wie” o użytkowniku – widzi tylko żądania od Nginx (localhost). Backend nie jest bezpośrednio dostępny z internetu → bezpieczniej (ataki trafiają na Nginx, nie na aplikację).
Dlaczego warto używać reverse proxy
SSL termination. Reverse proxy obsługuje szyfrowanie TLS – backend komunikuje się z proxy po HTTP (plaintext, localhost). Jeden certyfikat Let’s Encrypt na proxy zamiast konfiguracji SSL na każdym backendzie osobno.
Serwowanie statycznych plików. Nginx serwuje CSS, JS, obrazy 10–100x szybciej niż PHP-FPM czy Node.js – bo to jednocelowe operacje I/O, w których Nginx jest zoptymalizowany. Backend obsługuje tylko dynamiczne żądania.
Cache. Reverse proxy cache’uje odpowiedzi backendu – jeśli 100 użytkowników żąda tej samej strony, backend generuje ją raz, a proxy serwuje z cache 99 razy. Redis + Nginx FastCGI cache: WordPress obsługuje tysiące żądań/s.
Bezpieczeństwo. Backend ukryty za proxy – niedostępny z internetu. Proxy: rate limiting (ochrona przed DDoS), WAF, IP whitelisting, blokowanie botów.
Wiele aplikacji na jednym serwerze. Nginx jako reverse proxy: twojadomena.pl → PHP-FPM (WordPress), app.twojadomena.pl → Node.js (port 3000), api.twojadomena.pl → Python/Gunicorn (port 8000). Jeden serwer, jeden IP, jeden port 443 – Nginx routuje po domenie/ścieżce.
Load balancer – rozkładanie ruchu
Load balancer to reverse proxy, który rozdziela żądania między wiele serwerów backendowych (upstream servers). Gdy jeden serwer nie daje rady z ruchem – dodajesz drugi, trzeci – load balancer rozdziela ruch równomiernie.
Algorytmy load balancingu:
| Algorytm | Opis | Kiedy używać |
|---|---|---|
| Round Robin | Każde żądanie do kolejnego serwera (1→2→3→1→…) | Domyślny, serwery o równej wydajności |
| Least Connections | Żądanie trafia do serwera z najmniejszą liczbą aktywnych połączeń | Gdy żądania mają różny czas przetwarzania |
| IP Hash | Ten sam użytkownik (IP) zawsze trafia do tego samego serwera | Aplikacje z sesjami po stronie serwera |
| Weighted | Serwery z wagami (wydajniejszy serwer dostaje więcej ruchu) | Serwery o różnej wydajności |
Konfiguracja Nginx jako load balancer:
upstream backend {
server 10.0.0.1:8080 weight=3;
server 10.0.0.2:8080 weight=2;
server 10.0.0.3:8080 weight=1;
}
server {
listen 443 ssl http2;
server_name twojadomena.pl;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Popularne reverse proxy i load balancery
| Narzędzie | Typ | Najlepsze do |
|---|---|---|
| Nginx | Web server + reverse proxy | Większość zastosowań, WordPress, statyczne pliki |
| HAProxy | Dedykowany load balancer | High-traffic, TCP/HTTP load balancing |
| Traefik | Cloud-native reverse proxy | Docker, Kubernetes, auto-discovery |
| Caddy | Web server + reverse proxy | Auto-SSL (Let’s Encrypt), prosta konfiguracja |
| Cloudflare | Global reverse proxy + CDN | DDoS protection, cache, SSL, WAF |
Kiedy potrzebujesz load balancera
Jeden serwer nie daje rady. CPU na 100%, response time rośnie, użytkownicy widzą błąd 503. Zamiast: kupić większy serwer (vertical scaling – ograniczone) → dodaj drugi serwer + load balancer (horizontal scaling – nieograniczone).
Wymagana wysoka dostępność (HA). Jeden serwer = single point of failure. Dwa+ serwery za load balancerem: jeśli jeden padnie, ruch przejmuje drugi. Uptime: 99,99%+.
Zero-downtime deploys. Deploy nowej wersji: usuń serwer A z load balancera → deploy na A → dodaj A z powrotem → usuń B → deploy na B → dodaj B. Użytkownicy nie widzą przerwy.
Najczęściej zadawane pytania
Czy potrzebuję reverse proxy dla małej strony?
Jeśli masz VPS z WordPressem: Nginx jako reverse proxy + PHP-FPM to standard. Nawet dla małej strony: Nginx obsługuje SSL, statyczne pliki, cache – a PHP-FPM zajmuje się tylko dynamicznym contentem. Na shared hostingu: hosting robi to za Ciebie (Apache/LiteSpeed z PHP). Load balancer: nie – dopóki jeden serwer daje radę.
Reverse proxy vs VPN – jaka różnica?
Reverse proxy chroni serwer – stoi przed serwerem i pośredniczy w żądaniach od użytkowników. VPN chroni użytkownika – szyfruje ruch między Twoim komputerem a serwerem VPN, ukrywając Twój IP. Forward proxy (jak VPN/Squid) stoi przed klientem. Reverse proxy stoi przed serwerem.
Czy Cloudflare to reverse proxy?
Tak – Cloudflare to globalny reverse proxy + CDN. Gdy aktywujesz Cloudflare: żądania użytkowników trafiają najpierw na serwery Cloudflare (reverse proxy) → Cloudflare: cache’uje, kompresuje, chroni przed DDoS, obsługuje SSL → przekazuje do Twojego serwera (origin). Twój serwer „nie widzi” użytkowników bezpośrednio – widzi IP Cloudflare.

