Jak služba Azure Application Gateway funguje
Azure Application Gateway obsahuje řadu komponent, které kombinují zabezpečené směrování a vyrovnávání zatížení požadavků napříč fondem webových serverů. Application Gateway zahrnuje následující komponenty:
diagram
- Front-endové IP adresy: Požadavky klientů se přijímají prostřednictvím front-endové IP adresy. Službu Application Gateway můžete nakonfigurovat tak, aby měla veřejnou IP adresu, privátní IP adresu nebo obojí. Application Gateway nemůže mít více než jednu veřejnou IP adresu a jednu privátní IP adresu.
- Naslouchací jednotky: Application Gateway používá jednu nebo více naslouchacích jednotek k příjmu příchozích požadavků. Naslouchač přijímá provoz přicházející na zadanou kombinaci protokolu, portu, hostitele a IP adresy. Každý posluchač směruje požadavky na back-end serverový fond dle pravidel směrování, která specifikujete. Posluchač může být Basic nebo Multi-site. Posluchač Basic směruje požadavek pouze na základě cesty v URL. Naslouchací modul multi-site také může směrovat požadavky pomocí prvku názvu hostitele adresy URL. Posluchače také zpracovávají certifikáty TLS/SSL pro zabezpečení vaší aplikace mezi uživatelem a aplikační bránou.
- Pravidla směrování : Pravidlo směrování vytvoří vazbu posluchače s back-endovými skupinami. 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, držení relace, ukončení připojení, časový limit požadavku a zdravotní sondy.
Vyrovnávání zatížení ve službě Application Gateway
Application Gateway používá mechanismus round-robin k automatickému vyvažování zátěže požadavků odesílaných na servery v každém fondu back-endu. Vyrovnávání zatížení funguje s směrováním vrstvy 7 v rámci Otevřených systémových propojení (OSI), které je implementováno směrováním služby Application Gateway. To znamená, že vyrovnává zatížení požadavků na základě parametrů směrování (názvů hostitelů a cest) používaných pravidly služby 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 dříve, než se dostanou k naslouchacímu systému. 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 se označují jako základní sada pravidel (CRS). Sady pravidel se průběžně kontrolují, protože se útoky vyvíjejí v sofistikovanosti. WAF podporuje čtyři sady pravidel: CRS 3.2, 3.1, 3.0 a 2.2.9. CrS 3.1 je výchozí. V případě potřeby se můžete rozhodnout vybrat pouze konkrétní pravidla v sadě pravidel, která cílí na určité hrozby. Kromě toho můžete přizpůsobit bránu firewall tak, abyste určili, které prvky v požadavku se mají prozkoumat, a omezit velikost zpráv, aby se předešlo zahlcení 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á službou Azure App 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, než jej odešle na jeden ze serverů ve skupině back-endu.
Pokud k hostování back-endové aplikace používáte Azure App Service, nemusíte instalovat žádné certifikáty ve službě Application Gateway, abyste se mohli připojit k back-endovém fondu. Veškerá komunikace se automaticky šifruje. Application Gateway důvěřuje serverům, 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 š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í na více lokalitách.
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ů.
Směrování na více místech
Konfigurace směrování pro více webů nastavuje více než jednu webovou aplikaci na stejné instanci služby Application Gateway. V konfiguraci s více lokalitami zaregistrujete pro IP adresu aplikační brány několik názvů dns (CNAMEs) a zadáte název každé lokality. Application Gateway používá samostatné posluchače k čekání na požadavky pro každý web. Každý naslouchací proces předá 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 na servery v jednom back-end fondu a žádosti o http://fabrikam.com do jiného back-endového fondu. Následující diagram znázorňuje tuto konfiguraci:
Konfigurace pro více lokalit jsou užitečné pro podporu víceklientských aplikací, kde má každý nájemce 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řepsat hlavičky 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. Application Gateway umožňuje vytvářet vlastní chybové stránky místo zobrazení výchozích chybových stránek. Pomocí 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 vstupního portu. Můžete otevřít mnoho portů a Application Gateway může přijímat zprávy na jakémkoli z těchto portů. Posluchač je první věc, se kterou se provoz setká, když vstupuje do brány přes port. Naslouchací proces je nastavený tak, aby naslouchal konkrétnímu názvu hostitele a konkrétnímu portu na konkrétní IP adrese. Naslouchací zařízení může k dešifrování provozu, který vstupuje do brány, použít certifikát TLS/SSL. Posluchač pak použije pravidlo, které definujete, k nasměrování příchozích požadavků do back-endového poolu.
Zveřejnění webu nebo webové aplikace prostřednictvím služby Application Gateway také znamená, že servery přímo nepřipojíte k webu. V aplikační bráně vystavujete jenom port 80 nebo port 443, který se pak přesměruje na server ve fondu back-endu. 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, služba Application Gateway vytvoří výchozí sondu, která čeká 30 sekund, než se rozhodne, že server není dostupný. Sondy stavu zajišťují, že síťový provoz není směrován na nereagující nebo nefunkční webový koncový bod ve skupině back-end.
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é odebere požadavek na výběr velikosti nasazení nebo počtu instancí během zřizování.
Komunikace protokolu WebSocket a HTTP/2
Application Gateway poskytuje nativní podporu protokolů 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 (Transmission Control Protocol). 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žené tak, aby fungovaly přes tradiční porty HTTP 80 a 443.