Sdílet prostřednictvím


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.

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

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 nasloucháčích. Posluchač je logická entita, která kontroluje požadavky na připojení. Je nakonfigurován s front-endovou IP adresou, protokolem a číslem portu pro připojení klientů k bráně aplikačních služeb.

  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 Application Gateway může být použita jako interní nástroj pro vyrovnávání zatížení nebo jako internetový nástroj pro vyrovnávání zatížení. 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í nebo privátní DNS zónu, název domény musí být interně řeš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 není blokován WAF, služba Application Gateway vyhodnotí pravidlo směrování požadavků, které je přidružené k posluchači. 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ý bazén, odešle požadavek na jeden ze zdravých back-endových serverů v tomto bazénu (y.y.y.y). Stav serveru určuje sonda stavu. Pokud fond back-endových serverů obsahuje více serverů, služba Application Gateway používá algoritmus kruhového dotazování ke směrování požadavků mezi zdravé servery. 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, dodržuje veškerou vlastní konfiguraci, která byla provedena v nastavení HTTP související s přepsáním názvu hostitele, cesty a protokolu. Tato akce udržuje zachování relace pomocí souborů cookie, vyprazdňování připojení, výběr názvu hostitele z backendu atd.

Poznámka:

Pokud serverový pool:

  • 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. Rozlišení DNS je založeno na privátní zóně DNS nebo vlastním serveru DNS, pokud je nakonfigurován, nebo používá výchozí DNS poskytovanou Azure. Pokud neexistuje veřejná IP adresa front-endu, přiřadí se odchozí externí připojení.

Řešení DNS backendového serveru

Pokud je server v backendovém fondu nakonfigurovaný s plně kvalifikovanou doménou (FQDN), služba Application Gateway provede DNS vyhledávání, aby získala IP adresu této 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 při získávání odpovědi nebo když záznam již neexistuje, brána nadále používá naposledy známé dobré 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 reagovaly konzistentně se stejnými hodnotami DNS. Když instance vaší služby Application Gateway vydá dotaz DNS, použije hodnotu ze serveru, který odpoví jako první.
  • 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 povolena volba spřažení relace, přidá se soubor cookie spravovaný bránou pro řízení affinity.

X-appgw-trace-id je jedinečný identifikátor GUID generovaný službou Application Gateway pro každý klientský požadavek a uvedený v přeposlané žádosti členu záložníkové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 upravovala hlavičky požadavků a odpovědí a adresu URL pomocí přepsání HTTP hlaviček a URL nebo úpravou cesty URI pomocí nastavení přepsání cesty. Pokud to ale nenakonfigurujete, všechny příchozí požadavky se proxiují do back-endu.

Další kroky