Jak funguje Aplikace Azure Gateway

Dokončeno

Aplikace Azure Gateway obsahuje řadu komponent, které umožňují bezpečně směrovat a vyrovnávat zatížení požadavků ve fondu webových serverů. Application Gateway zahrnuje následující komponenty:

Diagram that shows Azure Application Gateway components.

  • Front-endová IP adresa: Požadavky klientů se přijímají prostřednictvím front-endové IP adresy. Bránu Application Gateway můžete nakonfigurovat tak, aby měla veřejnou IP adresu, privátní IP adresu nebo obě adresy. Application Gateway nemůže mít více než jednu veřejnou IP adresu a jednu privátní IP adresu.
  • Naslouchací procesy: Application Gateway používá k příjmu příchozích požadavků jeden nebo více naslouchacích procesů. Naslouchací proces přijímá provoz přicházející na určenou kombinaci protokolu, portu, hostitele a IP adresy. Každý naslouchací proces směruje požadavky na back-endový fond serverů v souladu s určenými pravidly směrování. Naslouchací proces může být základní nebo vícewebový (pro více lokalit). Základní naslouchací proces směruje pouze požadavek na základě cesty v adrese URL. Naslouchací proces pro více webů může také směrovat požadavky pomocí elementu hostname adresy URL. Naslouchací procesy také zpracovávají certifikáty TLS/SSL pro zabezpečení aplikace mezi uživatelem a službou Application Gateway.
  • Pravidla směrování: Pravidlo směrování vytvoří vazbu naslouchacího procesu s back-endovými fondy. Pravidlo určuje, jak interpretovat elementy názvu hostitele a cesty v adrese URL požadavku a směrovat požadavek do příslušného back-endového fondu. Pravidlo směrování má také přidruženou sadu nastavení HTTP. Tato nastavení HTTP určují, jestli je provoz mezi službou Application Gateway a back-endovými servery šifrovaný (a jak). Mezi další informace o konfiguraci patří protokol, odolnost relace, vyprazdňování Připojení, doba časového limitu požadavku a sondy stavu.

Vyrovnávání zatížení v bráně Application Gateway

Application Gateway automaticky vyrovnává zatížení požadavků odesílaných na servery v každém back-endovém fondu pomocí mechanismu kruhového dotazování. Vyrovnávání zatížení funguje se směrováním na úrovni OSI Layer 7 implementovaným pomocí směrování brány Application Gateway. Znamená to, že vyrovnávání zatížení probíhá u požadavků na základě parametrů směrování (názvů hostitelů a cest) používaných pravidly brány Application Gateway. Ve srovnání s jinými nástroji pro vyrovnávání zatížení, jako je Azure Load Balancer, fungují na úrovni OSI Vrstvy 4 a distribuují provoz na základě IP adresy cíle požadavku.

Pokud potřebujete zajistit, aby všechny požadavky na klienta ve stejné relaci byly směrovány na stejný server v back-endovém fondu, můžete nakonfigurovat odolnost relace.

Firewall webových aplikací

Firewall webových aplikací (WAF) je volitelná součást, která zpracovává příchozí požadavky, než se dostanou k naslouchacímu procesu. Firewall webových aplikací kontroluje každou žádost o řadu běžných hrozeb na základě projektu OWASP (Open Web Application Security Project). Mezi běžné hrozby patří: injektáž SQL, skriptování mezi weby, injektáž příkazů, pašování požadavků HTTP, rozdělení odpovědí HTTP, vzdálené zahrnutí souborů, roboti, prohledávací moduly a skenery a porušení protokolu HTTP a anomálie.

OWASP definuje sadu obecných pravidel pro detekci útoků. Tato pravidla jsou označována jako CRS (Core Rule Set). Tyto sady pravidel se průběžně revidují v souvislosti s tím, jak se vyvíjí sofistikovanost útoků. WAF podporuje čtyři sady pravidel: CRS 3.2, 3.1, 3.0 a 2.2.9. CrS 3.1 je výchozí. Pokud je třeba, můžete vybrat v sadě pravidel jen určitá pravidla, která jsou cílená na určité hrozby. Kromě toho můžete bránu firewall upravit a určit, které prvky požadavků se mají zkoumat, a omezit velikost zpráv, abyste zabránili zahlcení vašich serverů masivním nahráváním.

Back-endové fondy

Back-endový fond je kolekce webových serverů, ze které se dá vytvořit: pevná sada virtuálních počítačů, škálovací sada virtuálních počítačů, aplikace hostovaná Aplikace Azure Services nebo kolekce místních serverů.

Každý back-endový fond má přidružený nástroj pro vyrovnávání zatížení, který distribuuje práci napříč fondem. Při konfiguraci fondu zadáte IP adresu nebo název každého webového serveru. Všechny servery v back-endovém fondu by měly být nakonfigurované stejným způsobem, včetně nastavení zabezpečení.

Pokud používáte protokol TLS/SSL, má back-endový fond nastavení HTTP, které odkazuje na certifikát použitý k ověření back-endových serverů. Brána znovu zašifruje provoz pomocí tohoto certifikátu před jeho odesláním na jeden ze serverů v back-endovém fondu.

Pokud k hostování back-endové aplikace používáte službu Aplikace Azure Service, nemusíte instalovat žádné certifikáty ve službě Application Gateway pro připojení k back-endovém fondu. Veškerá komunikace se automaticky šifruje. Application Gateway považuje servery za důvěryhodné, protože je spravuje Azure.

Application Gateway pomocí pravidla určuje, jak směrovat zprávy, které přijímá na svém příchozím portu, na servery v back-endovém fondu. Pokud servery používají protokol TLS/SSL, musíte nakonfigurovat pravidlo tak, aby indikuje:

  • Že vaše servery očekávají provoz přes protokol HTTPS.
  • který certifikát se má použít k zašifrování provozu a ověření připojení k serveru.

Směrování služby Application Gateway

Když brána směruje požadavek klienta na webový server v back-endovém fondu, pomocí sady pravidel nakonfigurovaných pro bránu určí, kam má požadavek jít. Existují dvě primární metody směrování provozu požadavků tohoto klienta: směrování na základě cesty a směrování s více lokalitami.

Směrování na základě cesty

Směrování na základě cesty odesílá požadavky s různými cestami URL do různých fondů back-endových serverů. Můžete například směrovat žádosti s cestou /video/* do back-endového fondu obsahujícího servery optimalizované pro zpracování streamování videa a směrovat požadavky /images/* do fondu serverů, které zpracovávají načítání obrázků.

Diagram that depicts path-based routing in Azure Application Gateway.

Směrování s více lokalitami

Směrování více webů konfiguruje více než jednu webovou aplikaci ve stejné instanci služby Application Gateway. V konfiguraci s více lokalitami zaregistrujete několik názvů DNS (CNAMEs) pro IP adresu aplikační brány a zadáte název každé lokality. Brána Application Gateway používá k čekání na požadavky pro jednotlivé weby samostatné naslouchací procesy. Každý naslouchací proces předává požadavek jinému pravidlu, které může směrovat požadavky na servery v jiném back-endovém fondu. Můžete například směrovat všechny požadavky na http://contoso.com servery v jednom back-end fondu a požadavky na http://fabrikam.com jiný back-endový fond. Následující diagram znázorňuje tuto konfiguraci:

Diagram that depicts multi-site routing in Azure Application Gateway.

Konfigurace více webů jsou užitečné pro podporu víceklientských aplikací, kde má každý tenant vlastní sadu virtuálních počítačů nebo jiných prostředků hostujících webovou aplikaci.

Směrování služby Application Gateway zahrnuje také tyto funkce:

  • Přesměrování. Přesměrování se dá použít na jiný web nebo z HTTP na HTTPS.
  • Přepsání hlaviček HTTP. Hlavičky HTTP umožňují klientovi a serveru předávat informace o parametrech s požadavkem nebo odpovědí.
  • Vlastní chybové stránky Služba Application Gateway vám umožní vytvořit vlastní chybové stránky místo zobrazení výchozích chybových stránek. U vlastní chybové stránky můžete použít vlastní branding a rozložení.

Ukončení protokolu TLS/SSL

Když ukončíte připojení TLS/SSL ve službě Application Gateway, přesměruje úlohy ukončení protokolu TLS/SSL náročné na procesor z vašich serverů. Nemusíte také instalovat certifikáty a konfigurovat protokol TLS/SSL na servery.

Pokud potřebujete komplexní šifrování, služba Application Gateway může dešifrovat provoz v bráně pomocí privátního klíče a pak znovu zašifrovat pomocí veřejného klíče služby spuštěné v back-endovém fondu.

Provoz vstupuje do brány prostřednictvím front-endového portu. Můžete otevřít mnoho portů a Application Gateway může přijímat zprávy na některých z těchto portů. Naslouchací proces je první věcí, se kterou se provoz po vstupu do brány přes některý port setká. Naslouchací proces je nastavený tak, aby naslouchal konkrétnímu názvu hostitele a konkrétnímu portu na konkrétní IP adrese. Naslouchací proces může k dešifrování provozu, který zadává bránu, použít certifikát TLS/SSL. Naslouchací proces pak použije pravidlo, které definujete pro směrování příchozích požadavků do back-endového fondu.

Diagram that depicts TLS/SSL termination in Azure Application Gateway.

Zveřejnění webu nebo webové aplikace přes aplikační bránu také znamená, že vaše servery nebudete připojovat přímo na web. V aplikační bráně vystavujete jenom port 80 nebo port 443, který se pak přesměruje na server back-endového fondu. V této konfiguraci nejsou webové servery přístupné přímo z internetu, což snižuje prostor pro útoky vaší infrastruktury.

Sondy stavu

Sondy stavu určují, které servery jsou k dispozici pro vyrovnávání zatížení v back-endovém fondu. Application Gateway používá sondu stavu k odeslání požadavku na server. Když server vrátí odpověď HTTP se stavovým kódem mezi 200 a 399, považuje se server za v pořádku. Pokud sondu stavu nenakonfigurujete, brána Application Gateway vytvoří výchozí sondu, která funguje tak, že čeká 30 sekund, než rozhodne, že je server nedostupný. Sondy stavu zajišťují, že provoz není směrovaný na nereagující nebo neúspěšný webový koncový bod v back-endovém fondu.

Automatické škálování

Application Gateway podporuje automatické škálování a může vertikálně navýšit nebo snížit kapacitu na základě změn vzorů zatížení provozu. Automatické škálování také eliminuje nutnost zvolit během zřizování velikost nasazení nebo počet instancí.

Přenosy protokolu WebSocket a HTTP/2

Application Gateway poskytuje nativní podporu pro protokoly WebSocket a HTTP/2. Protokoly WebSocket a HTTP/2 umožňují úplnou duplexní komunikaci mezi serverem a klientem přes dlouhotrvající připojení TCP. Tento typ komunikace je interaktivnější mezi webovým serverem a klientem a může být obousměrný bez nutnosti dotazování podle požadavků v implementacích založených na protokolu HTTP. Tyto protokoly mají nízkou režii (na rozdíl od PROTOKOLU HTTP) a můžou znovu použít stejné připojení TCP pro více požadavků a odpovědí, což vede k efektivnějšímu využití prostředků. Tyto protokoly jsou navrženy pro práci přes tradiční porty HTTP 80 a 443.