Jak funguje aplikační brána

Tento článek vysvětluje, jak služba Application Gateway přijímá příchozí požadavky a směruje je do back-endu.

How an application gateway accepts a request

Jak aplikační brána přijímá požadavek

  1. Než klient odešle požadavek do aplikační brány, přeloží název domény aplikační brány pomocí serveru DNS (Domain Name System). Azure řídí položku DNS, protože všechny aplikační brány jsou v azure.com doméně.

  2. Azure DNS vrátí IP adresu klientovi, což je front-endová IP adresa aplikační brány.

  3. Aplikační brána přijímá příchozí provoz na jednom nebo více naslouchacích procesů. Naslouchací proces je logická entita, která kontroluje požadavky na připojení. Konfiguruje se s front-endovou IP adresou, protokolem a číslem portu pro připojení z klientů ke službě Application Gateway.

  4. Pokud se používá firewall webových aplikací (WAF), služba Application Gateway zkontroluje hlavičky požadavků a text, pokud je k dispozici, proti pravidlům WAF. Tato akce určuje, jestli je požadavek platný nebo bezpečnostní hrozba. Pokud je požadavek platný, směruje se do back-endu. Pokud požadavek není platný a WAF je v režimu prevence, je zablokovaný jako bezpečnostní hrozba. Pokud je v režimu detekce, požadavek se vyhodnotí a zaprotokoluje, ale stále se předá na back-endový server.

Aplikace Azure Gateway je možné použít jako interní nástroj pro vyrovnávání zatížení aplikace nebo jako internetový nástroj pro vyrovnávání zatížení aplikace. Internetová aplikační brána používá veřejné IP adresy. Název DNS internetové aplikační brány je veřejně přeložitelný na svou veřejnou IP adresu. V důsledku toho můžou internetové aplikační brány směrovat požadavky klientů z internetu.

Interní aplikační brány používají pouze privátní IP adresy. Pokud používáte vlastní zónu nebo zónu Privátní DNS, měl by být název domény interně přeložitelný na privátní IP adresu služby Application Gateway. Interní nástroje pro vyrovnávání zatížení proto můžou směrovat požadavky pouze od klientů s přístupem k virtuální síti pro aplikační bránu.

Směrování požadavku službou Application Gateway

Pokud je požadavek platný a neblokuje WAF, služba Application Gateway vyhodnotí pravidlo směrování požadavků, které je přidružené k naslouchacímu procesu. Tato akce určuje, do kterého back-endového fondu se má požadavek směrovat.

Na základě pravidla směrování požadavků služba Application Gateway určí, jestli se mají všechny požadavky naslouchacího procesu směrovat do konkrétního back-endového fondu, směrovat požadavky do různých back-endových fondů na základě cesty URL nebo přesměrovat požadavky na jiný port nebo externí web.

Poznámka:

Pravidla se zpracovávají v pořadí, v jakém jsou uvedená na portálu pro skladovou položku v1.

Když služba Application Gateway vybere back-endový fond, odešle požadavek na jeden z back-endových serverů v pořádku ve fondu (y.y.y.y). Stav serveru určuje sonda stavu. Pokud back-endový fond obsahuje více serverů, služba Application Gateway pomocí algoritmu kruhového dotazování směruje požadavky mezi servery, které jsou v pořádku. Toto zatížení vyrovnává požadavky na serverech.

Jakmile aplikační brána určí back-endový server, otevře novou relaci TCP s back-endovým serverem na základě nastavení HTTP. Nastavení HTTP určuje protokol, port a další nastavení související se směrováním, která jsou nutná k navázání nové relace s back-endovým serverem.

Port a protokol použitý v nastavení HTTP určují, jestli je provoz mezi aplikační bránou a back-endovými servery šifrovaný (tím se dosahuje kompletního protokolu TLS) nebo je nešifrovaný.

Když aplikační brána odešle původní požadavek na back-endový server, bude respektovat veškerou vlastní konfiguraci provedenou v nastavení HTTP související s přepsáním názvu hostitele, cesty a protokolu. Tato akce udržuje spřažení relace na základě souborů cookie, vyprazdňování připojení, výběr názvu hostitele z back-endu atd.

Poznámka:

Pokud back-endový fond:

  • Je veřejný koncový bod, aplikační brána používá k připojení k serveru svou front-endovou veřejnou IP adresu. Pokud neexistuje veřejná IP adresa front-endu, přiřadí se odchozí externí připojení.
  • Obsahuje interně přeložitelný plně kvalifikovaný název domény nebo privátní IP adresu, služba Application Gateway směruje požadavek na back-endový server pomocí privátních IP adres instance.
  • Obsahuje externí koncový bod nebo externě přeložitelný plně kvalifikovaný název domény, služba Application Gateway směruje požadavek na back-endový server pomocí své veřejné IP adresy front-endu. Pokud podsíť obsahuje koncové body služby, služba Application Gateway přesměruje požadavek na službu přes svou privátní IP adresu. Překlad DNS je založený na privátní zóně DNS nebo vlastním serveru DNS, pokud je nakonfigurovaný, nebo používá výchozí DNS poskytovanou službou Azure. Pokud neexistuje veřejná IP adresa front-endu, přiřadí se odchozí externí připojení.

Překlad DNS back-endového serveru

Pokud je server back-endového fondu nakonfigurovaný s plně kvalifikovaným názvem domény (FQDN), služba Application Gateway provede vyhledávání DNS, aby získala IP adresy názvu domény. Hodnota IP adresy je uložená v mezipaměti služby Application Gateway, aby mohla rychleji dosáhnout cílů při poskytování příchozích požadavků.

Služba Application Gateway uchovává tyto informace uložené v mezipaměti po dobu odpovídající hodnotě TTL záznamu DNS (time to live) a po vypršení hodnoty TTL provede nové vyhledávání DNS. Pokud brána zjistí změnu IP adresy pro další dotaz DNS, začne směrovat provoz do tohoto aktualizovaného cíle. V případě problémů, jako je selhání vyhledávání DNS, aby obdrželo odpověď nebo záznam již neexistuje, brána nadále používá poslední dobře známé IP adresy. To zajišťuje minimální dopad na cestu k datům.

Důležité

  • Při použití vlastních serverů DNS s virtuální sítí služby Application Gateway je důležité, aby všechny servery byly identické a reagovaly konzistentně se stejnými hodnotami DNS.
  • Uživatelé místních vlastních serverů DNS musí při použití zóny Privátní DNS pro privátní koncový bod zajistit připojení k Azure DNS prostřednictvím privátního překladače DNS (doporučeno) nebo virtuálního počítače pro předávání DNS.

Úpravy žádosti

Služba Application Gateway před předáním požadavků back-endu vloží do všech požadavků šest dalších hlaviček. Tyto hlavičky jsou x-forwarded-for, x-forwarded-port, x-forwarded-proto, x-original-host, x-original-url a x-appgw-trace-id. Formát hlavičky x-forwarded-for je čárkami oddělený seznam IP:port.

Platné hodnoty pro x-forwarded-proto jsou HTTP nebo HTTPS. X-forwarded-port určuje port, do kterého požadavek dosáhl aplikační brány. Hlavička X-original-host obsahuje původní hlavičku hostitele, se kterou žádost přišla. Tato hlavička je užitečná v integraci webu Azure, kde se před směrováním provozu do back-endu změní hlavička příchozího hostitele. Pokud je jako možnost povolena spřažení relace, přidá soubor cookie spřažení spravovaný bránou.

X-appgw-trace-id je jedinečný identifikátor GUID vygenerovaný službou Application Gateway pro každý požadavek klienta a předaný v předávané žádosti členu back-endového fondu. Identifikátor GUID se skládá z 32 alfanumerických znaků zobrazených bez pomlček (například: ac882cd65a2712a0fe1289ec2bb6ae7). Tento identifikátor GUID lze použít ke korelaci požadavku přijatého službou Application Gateway a inicializován na člena back-endového fondu prostřednictvím vlastnosti transactionId v diagnostických protokolech.

Službu Application Gateway můžete nakonfigurovat tak, aby upravoval hlavičky požadavků a odpovědí a adresu URL pomocí přepsání http nebo upravte cestu URI pomocí nastavení přepsání cesty. Pokud to ale nenakonfigurujete, všechny příchozí požadavky se proxiují do back-endu.

Další kroky