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 služba Application Gateway 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 procesech. Naslouchací proces je logická entita, která kontroluje požadavky na připojení. Je nakonfigurovaná 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 tělo, pokud je k dispozici, v pravidlech 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.

Azure Application Gateway lze 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 jeho 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 se název domény interně přeložit na privátní IP adresu 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.

Způsob směrování požadavku ve službě Application Gateway

Pokud je požadavek platný a neblokovaný 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čuje, jestli se mají všechny požadavky naslouchacího procesu směrovat do konkrétního back-endového fondu, směrovat požadavky na různé back-endové fondy 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ž aplikační brána vybere back-endový fond, odešle požadavek na jeden z back-endových serverů v pořádku ve fondu (y.y.y). Stav serveru určuje sonda stavu. Pokud back-endový fond obsahuje více serverů, služba Application Gateway používá algoritmus kruhového dotazování ke směrování požadavků 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í PROTOKOLU HTTP určují 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 provádí kompletní protokol TLS) nebo je nešifrovaný.

Když aplikační brána odešle původní požadavek na back-endový server, respektuje jakoukoli 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 založené na souborech cookie, vyprázdnění připojení, výběr názvu hostitele z back-endu atd.

Poznámka

Pokud back-endový fond:

  • Je veřejný koncový bod, služba Application Gateway používá k přístupu k serveru svou front-endovou veřejnou IP adresu. Pokud neexistuje front-endová veřejná IP adresa, přiřadí se jedna pro 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. 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 poskytovaný Azure. Pokud neexistuje front-endová veřejná IP adresa, přiřadí se jedna pro odchozí externí připojení.

Změny žádosti

Služba Application Gateway vloží do všech požadavků šest dalších hlaviček, než požadavky přeposílají do back-endu. 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 seznam IP:port oddělený čárkami.

Platné hodnoty pro x-forwarded-proto jsou HTTP nebo HTTPS. X-forwarded-port určuje port, do kterého požadavek dosáhl služby Application Gateway. Hlavička X-original-host obsahuje původní hlavičku hostitele, se kterou požadavek dorazil. 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á se 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ždou žádost 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 iniciovaného č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ědi a adresu URL pomocí přepsání http nebo upravte cestu identifikátoru URI pomocí nastavení přepsání cesty. Pokud to ale nenakonfigurujete, všechny příchozí požadavky se proxiují do back-endu.

Další kroky

Další informace o komponentách služby Application Gateway