Sdílet prostřednictvím


Přehled YARP

Úvod do YARP

YARP (další reverzní proxy server) je vysoce přizpůsobitelná reverzní proxy knihovna pro .NET. Je navržená tak, aby poskytovala robustní, flexibilní, škálovatelnou, zabezpečenou a snadno použitelnou architekturu proxy serveru. YARP pomáhá vývojářům vytvářet výkonná a efektivní řešení reverzního proxy serveru přizpůsobená jejich konkrétním potřebám.

Co reverzní proxy dělá

Reverzní proxy server je server, který se nachází mezi klientskými zařízeními a back-endovými servery. Předává požadavky klientů na příslušný back-endový server a pak vrátí odpověď serveru klientovi. Reverzní proxy server nabízí několik výhod:

  • Směrování: Směruje požadavky na různé back-endové servery na základě předdefinovaných pravidel, jako jsou vzory adres URL nebo hlavičky požadavků. Například /images, /api, a /db požadavky mohou být směrovány na servery pro obrázky, API a databázi.
  • Vyrovnávání zatížení: Distribuuje příchozí provoz mezi více back-endových serverů, aby se zabránilo přetížení konkrétního serveru. Distribuce zvyšuje výkon a spolehlivost.
  • Škálovatelnost: Díky distribuci provozu mezi více serverů pomáhá reverzní proxy server škálovat aplikace, aby zvládly více uživatelů a vyšší zatížení. Back-endové servery se škálovaly (přidané nebo odebrané), aniž by to mělo vliv na klienta.
  • ukončení protokolu SSL/TLS: Přesměruje procesy šifrování a dešifrování protokolu TLS z back-endových serverů a snižuje jejich zatížení.
  • Abstrakce připojení, oddělení a řízení prostoru adresy URL: Příchozí požadavky z externích klientů a odchozí odpovědi z back-endu jsou nezávislé. Tato nezávislost umožňuje různé možnosti:
    • Verze HTTP, tj. HTTP/1.1, HTTP/2, HTTP/3. Proxy server může aktualizovat nebo zhoršit verze HTTP.
    • Životnost připojení, která umožňují mít na back-endu dlouhodobá připojení při zachování krátkých klientských připojení.
    • Řízení prostoru adresy URL: Příchozí adresy URL je možné transformovat před předáním do back-endu. Tím se oddělují externí adresy URL od způsobu, jakým jsou mapovány na interní služby. Interní koncové body služby se můžou měnit, aniž by to mělo vliv na externí adresy URL.
  • Zabezpečení: Vnitřní koncové body služby mohou být skryty před externím vystavením, chrání před některými typy kybernetických útoků, jako jsou útoky DDoS.
  • Ukládání do mezipaměti: Často požadované prostředky je možné ukládat do mezipaměti, aby se snížilo zatížení back-endových serverů a zlepšila se doba odezvy.
  • Správa verzí: Různé verze rozhraní API je možné podporovat pomocí různých mapování adres URL.
  • Zjednodušená údržba: Reverzní proxy servery můžou zpracovávat ukončení protokolu SSL/TLS a další úlohy, což zjednodušuje konfiguraci a údržbu back-endových serverů. Například certifikáty SSL a zásady zabezpečení je možné spravovat na úrovni reverzního proxy serveru místo na každém jednotlivém serveru.

Jak reverzní proxy zpracovává PROTOKOL HTTP

Reverzní proxy zpracovává požadavky a odpovědi HTTP následujícím způsobem:

  • Příjem požadavků: Reverzní proxy naslouchá na zadaných portech a koncových bodech příchozích požadavků HTTP od klientů.
  • Ukončování připojení: Příchozí připojení HTTP jsou ukončena na proxy serveru a nová připojení se používají pro odchozí požadavky na cíle.
  • Požadavky směrování: Na základě předdefinovaných pravidel směrování a konfigurací určuje reverzní proxy server, který back-endový server nebo cluster serverů by měl požadavek zpracovat.
  • Předávací požadavky: Reverzní proxy server předává požadavek klienta na příslušný back-endový server a podle potřeby transformuje cestu a hlavičky.
  • Sdružování připojení: Odchozí připojení jsou sdružována, aby se snížily režijní náklady na připojení a aby se co nejvíce využívalo opakované použití spojení HTTP 1.1 a paralelní požadavky s protokoly HTTP/2 a HTTP/3.
  • Zpracování odpovědí: Back-endový server zpracuje požadavek a odešle odpověď zpět na reverzní proxy server.
  • Vrácení odpovědí: Reverzní proxy server obdrží odpověď z back-endového serveru a předá ji zpět klientovi a provede všechny potřebné transformace odpovědí.

Tento proces zajišťuje, že klient komunikuje s reverzním proxy serverem místo přímo s back-endovými servery a poskytuje výhody vyrovnávání zatížení, zabezpečení, správy verzí a dalších.

Proč zvolit YARP oproti jiným proxy serverům

YARP nabízí několik jedinečných výhod, díky kterým je atraktivní volbou pro vývojáře:

  • Přizpůsobení: YARP je vysoce přizpůsobitelný, což vývojářům umožňuje přizpůsobit proxy server svým konkrétním potřebám s minimálním úsilím.
  • Integrace s .NET: Založená na ASP.NET Core se YARP bezproblémově integruje s ekosystémem .NET, takže je ideální volbou pro vývojáře .NET.
  • Rozšiřitelnost: YARP poskytuje bohatou sadu bodů rozšiřitelnosti, která vývojářům umožňuje podle potřeby přidávat vlastní logiku a funkce pomocí známého kódu jazyka C#.
  • Škálovatelnost: Možnost rozšiřitelnosti přímého předávání umožňuje technologii YARP škálovat tak, aby podporovala název domény a back-endové škálování, které není možné použít u většiny reverzních proxy serverů.
  • Aktivní vývoj: YARP je aktivně udržován a vyvíjen společností Microsoft, což zajišťuje, že je stále aktuální s nejnovějšími technologiemi a osvědčenými postupy.
  • Komplexní udržovaná dokumentace: YARP obsahuje rozsáhlou dokumentaci a příklady, které usnadňují zahájení a implementaci pokročilých funkcí.
  • otevřený zdroj. YARP a dokumentace YARP jsou opensourcové. příspěvky, recenze a zpětná vazba jsou vítány.