- 16.11.2019
- 4 minuty čtení
-
- a
- j
- . D
- s
- v
-
+2
Tento článek vysvětluje, jak aplikační brána přijímá příchozí požadavky a směruje je na backend.
Jak aplikační brána přijímá požadavky
-
Předtím, než klient odešle požadavek aplikační bráně, přeloží název domény aplikační brány pomocí serveru DNS (Domain Name System). Azure kontroluje záznam DNS, protože všechny aplikační brány jsou v doméně azure.com.
-
Azure DNS vrátí klientovi IP adresu, což je frontendová IP adresa aplikační brány.
-
Aplikační brána přijímá příchozí provoz na jednom nebo více posluchačích. Posluchač je logická entita, která kontroluje požadavky na připojení. Je nakonfigurován s frontendovou IP adresou, protokolem a číslem portu pro připojení od klientů k aplikační bráně.
-
Pokud je používán webový aplikační firewall (WAF), aplikační brána kontroluje hlavičky a tělo požadavku, pokud jsou přítomny, podle pravidel WAF. Tato akce určí, zda se jedná o platný požadavek, nebo o bezpečnostní hrozbu. Pokud je požadavek platný, je přesměrován do backendu. Pokud požadavek není platný a WAF je v režimu prevence, je zablokován jako bezpečnostní hrozba. Pokud je v režimu Detekce, požadavek je vyhodnocen a zaznamenán, ale přesto je přesměrován na backendový server.
Azure Application Gateway lze použít jako interní vyrovnávač zátěže aplikací nebo jako vyrovnávač zátěže aplikací směřujících do internetu. Aplikační brána směřující do internetu používá veřejné IP adresy. Název DNS aplikační brány orientované na internet je veřejně přeložitelný na její veřejnou IP adresu. V důsledku toho mohou aplikační brány směřující do internetu 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í zónu DNS, měl by být název domény interně resolvovatelný na privátní IP adresu aplikační brány. Interní vyrovnávače zatížení proto mohou směrovat pouze požadavky od klientů s přístupem k virtuální síti aplikační brány.
Jak aplikační brána směruje požadavek
Je-li požadavek platný a není blokován systémem WAF, aplikační brána vyhodnotí pravidlo směrování požadavků, které je přiřazeno k posluchači. Tato akce určuje, do kterého backendového fondu má být požadavek směrován.
Na základě pravidla směrování požadavků aplikační brána určí, zda má směrovat všechny požadavky na posluchači do konkrétního backendového fondu, směrovat požadavky do různých backendový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 uvedena na portálu pro v1 SKU.
Když aplikační brána vybere backend pool, odešle požadavek na jeden ze zdravých backend serverů v tomto poolu (y.y.y.y). Zdravotní stav serveru se zjišťuje sondou stavu. Pokud backend pool obsahuje více serverů, aplikační brána použije algoritmus round-robin pro směrování požadavků mezi zdravými servery. Tím se vyrovnává zatížení serverů.
Po určení backendového serveru aplikační brána otevře novou relaci TCP s backendový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 vytvoření nové relace s backendovým serverem.
Port a protokol použité v nastavení HTTP určují, zda je provoz mezi aplikační bránou a backendovými servery šifrovaný (čímž je dosaženo protokolu TLS end-to-end), nebo nešifrovaný.
Když aplikační brána odešle původní požadavek na backendový server, respektuje veškerou vlastní konfiguraci provedenou v nastavení HTTP týkající se přepsání názvu hostitele, cesty a protokolu. Tato akce zachovává afinitu relace založenou na souborech cookie, vyčerpání spojení, výběr jména hostitele z backendu atd.
Poznámka
Pokud je backend pool:
- Veřejný koncový bod, aplikační brána použije k dosažení serveru svou veřejnou IP adresu frontendu. Pokud neexistuje frontendová veřejná IP adresa, je přiřazena pro odchozí externí připojení.
- Obsahuje interně resolvovatelný FQDN nebo privátní IP adresu, aplikační brána směruje požadavek na backendový server pomocí svých privátních IP adres instance.
- Obsahuje externí koncový bod nebo externě resolvovatelný FQDN, aplikační brána směruje požadavek na backendový server pomocí své frontendové veřejné IP adresy. Překlad DNS je založen na soukromé zóně DNS nebo vlastním serveru DNS, pokud je nakonfigurován, nebo používá výchozí DNS poskytovaný službou Azure. Pokud není k dispozici veřejná IP adresa frontend, je přiřazena pro odchozí externí připojení.
Modifikace požadavku
Aplikační brána vkládá do všech požadavků čtyři další hlavičky předtím, než požadavky předá backendu. Tyto hlavičky jsou x-forwarded-for, x-forwarded-proto, x-forwarded-port a x-original-host. Formát hlavičky x-forwarded-for je čárkou oddělený seznam IP:port.
Platné hodnoty pro x-forwarded-proto jsou HTTP nebo HTTPS. X-forwarded-port určuje port, na který požadavek dorazil do aplikační brány. Hlavička X-original-host obsahuje původní hlavičku hostitele, se kterou požadavek přišel. Tato hlavička je užitečná při integraci webových stránek Azure, kdy je hlavička příchozího hostitele upravena před přesměrováním provozu do backendu. Pokud je jako možnost povolena příbuznost relací, pak přidává soubor cookie příbuznosti spravovaný bránou.
Aplikační bránu můžete nakonfigurovat tak, aby upravovala hlavičky požadavků a odpovědí a adresu URL pomocí funkce Rewrite HTTP headers and URL nebo aby upravovala cestu URI pomocí nastavení path-override. Pokud to však není nakonfigurováno, jsou všechny příchozí požadavky proxovány na backend.
Přečtěte si o součástech aplikační brány
.