Reverzní proxy se používají jako zprostředkující síťová komponenta k zabezpečení serverů veřejných online služeb. Přijímají požadavky serverů jménem serverů a předávají je uživatelům.

Jak funguje reverzní proxy?

Proxy server v podstatě funguje jako komunikační prostředník v síti, přijímá požadavky a předává je cílovému serveru jménem klienta. Reverzní proxy server je umístěn mezi klienty (např. webovými prohlížeči) a backendovými servery (např. webovými servery, databázovými servery nebo aplikacemi). Aktivuje se při odeslání požadavku klienta a určuje, zda a na kterou interní serverovou komponentu by měl být požadavek směrován. Tento proces se skládá ze čtyř základních kroků:

  1. Příjem požadavku klienta: Reverzní proxy přijímápožadavky HTTP, HTTPS nebo jiné požadavky, jako jsou FTP nebo WebSocket.
  2. Analýza požadavku: Proxy prověří, zda je požadavek platný, zda nepředstavuje bezpečnostní riziko a zda je k dispozici jeho verze v mezipaměti.
  3. Přesměrování na příslušný server: Pokud nelze na požadavek odpovědět z mezipaměti, reverzní proxy odešle požadavek na jeden z interních serverů.
  4. Odpověď klientovi: Reverzní proxy přijme odpověď od backendového serveru, v případě potřeby ji dále zpracuje (např. šifrování) a odešle zpět klientovi, který požadavek odeslal.
Obrázek: Schematic representation of a reverse proxy
Reverse proxy and web server are located in a shared internal network

Jaký je rozdíl oproti forward proxy?

Zatímco reverzní proxy, jak již bylo zmíněno, jsou umístěny mezi klienty a backendovými servery, forward proxy jsou umístěny mezi klienty a internetem. Forward proxy směruje všechny požadavky klientů a předává je s vlastní adresou odesílatele cílovým serverům na internetu. Odpovědi serverů také nejprve dorazí k proxy, než jsou distribuovány příslušným klientským zařízením. Ty zůstávají anonymní, pokud se nejedná o transparentní proxy. Zatímco forward proxy chrání klienty ve vnitřní síti před vnějšími hrozbami, reverzní proxy zabezpečuje servery ve veřejné síti a optimalizuje jejich dostupnost.

Zatímco reverzní proxy servery nabízejí jasné výhody pro struktury serverů díky funkcím, jako je vyvažování zátěže a různé bezpečnostní funkce, přednosti forward proxy serverů spočívají v ochraně klientů.

Obrázek: Schematic representation of a forward proxy
Unlike a reverse proxy, the forward proxy is located in a shared internal network with the clients.

Oblasti použití reverzních proxy serverů

Sdružování požadavků klientů umožňuje reverzním proxy serverům vysoce kontrolovat příchozí provoz. To mimo jiné umožňuje poskytovat více serverů pod stejnou URL adresou, rovnoměrně rozložit požadavky mezi různé servery a zrychlit načítání dat pomocí mezipaměti. Níže jsou uvedeny klíčové oblasti použití reverzního proxy serveru.

Vyrovnávání zatížení

Reverzní proxy umístěný vpředu umožňuje propojit URL s různými servery v privátní síti. Tím se příchozí požadavky rozloží na více serverů. Takové vyvažování zátěže zabraňuje přetížení jednotlivých systémů a kompenzuje výpadky. Pokud je server nedostupný kvůli hardwarovým nebo softwarovým chybám, modul vyvažování zátěže proxy přerozdělí příchozí požadavky na zbývající servery. Tím je zajištěna dostupnost serverových služeb i během výpadků.

Ukládání do mezipaměti

Pro zrychlení serverových služeb mohou reverzní proxy servery nabídnout funkci, která umožňuje ukládání často požadovaného obsahu do mezipaměti. Toto ukládání do mezipaměti umožňuje proxy serveru odpovídat na opakované požadavky částečně nebo zcela samostatně. Statický obsah, jako jsou obrázky nebo styly CSS, se ukládá do mezipaměti proxy. Výsledkem je, že z backendového serveru je třeba načíst jen málo nebo vůbec žádná data, což výrazně zrychluje přístup k webovým službám. Protože se však obsah rychle mění, není vždy zaručeno, že mezipaměť proxy obsahuje aktuální verzi, a existuje riziko, že se klientům, kteří o to požádají, doručí zastaralé informace.

Ochranná a bezpečnostní opatření

Reverzní proxy funguje jako jakýsi štít pro backendové servery a v této roli může nabízet různé bezpečnostní funkce:

  • Ochrana proti DDoS: Reverzní proxy servery dokážou detekovat a blokovat podezřelý nebo neobvykle vysoký provoz během DDoS útoků, než se dostane k backendovým serverům.
  • Web Application Firewall (WAF): Mnoho reverzních proxy serverů obsahuje WAF, který dokáže filtrovat škodlivé požadavky, jako jsou SQL injekce nebo Cross-Site Scripting (XSS).
  • Whitelisting a blacklisting IP adres: Reverzní proxy server může v případě potřeby blokovat určité IP adresy nebo povolit připojení pouze ze specifických sítí.
  • Skrytí backendových serverů: Reverzní proxy brání veřejnému zobrazení interních IP adres backendových serverů, což útoky ztěžuje.

Šifrování

Pro snížení zatížení backendových serverů lze pro šifrování použít také reverzní proxy servery. V tomto případě dešifrují SSL/TLS požadavek klienta (např. HTTPS připojení), předávají dešifrovaná data backendovým serverům a odpovídající odpověď zasílají zpět klientovi opět zašifrovanou. Interní komunikace může probíhat buď zašifrovaná, nebo nezašifrovaná.

Anonymizace

Reverzní proxy lze také použít k anonymizaci provozu maskováním původních IP adres klientů nebo jejich nahrazením vlastními IP adresami. To pomáhá chránit soukromí klientů, protože skutečné IP adresy nebudou viditelné v protokolech. Navíc to umožňuje geografické vyvažování zátěže: požadavky mohou být směrovány na nejbližší server v závislosti na geografické poloze uživatele.

Komprese

Se správným softwarem lze reverzní proxy použít ke kompresi příchozích a odchozích dat. Populárním programem pro kompresi webových stránek je gzip, který se často používá v kombinaci s webovými servery Apache nebo NGINX.

Přejít do hlavního menu