How an application gateway works

  • 11/16/2019
  • 4 minutes to read
    • a
    • j
    • D
    • s
    • v
    • +2

Ez a cikk elmagyarázza, hogyan fogadja egy alkalmazáskapu a bejövő kéréseket, és továbbítja azokat a backendhez.

Hogyan fogad el egy alkalmazáskapu egy kérést

Hogyan fogad el egy alkalmazáskapu egy kérést

  1. Mielőtt egy ügyfél kérést küld egy alkalmazáskapunak, egy DNS-kiszolgáló (Domain Name System) segítségével feloldja az alkalmazáskapu tartománynevét. Az Azure ellenőrzi a DNS-bejegyzést, mivel minden alkalmazáskapu az azure.com tartományban található.

  2. Az Azure DNS visszaadja az IP-címet az ügyfélnek, amely az alkalmazáskapu frontend IP-címe.

  3. Az alkalmazáskapu egy vagy több figyelőn fogadja a bejövő forgalmat. A figyelő egy logikai egység, amely ellenőrzi a kapcsolati kéréseket. Egy frontend IP-címmel, protokollal és portszámmal van konfigurálva az ügyfelektől az alkalmazás-átjáróhoz érkező kapcsolatokhoz.

  4. Ha webalkalmazási tűzfal (WAF) van használatban, az alkalmazás-átjáró ellenőrzi a kérés fejléceit és a testet, ha van, a WAF-szabályok alapján. Ez a művelet határozza meg, hogy a kérés érvényes kérés vagy biztonsági fenyegetés. Ha a kérés érvényes, a rendszer továbbítja a backendhez. Ha a kérés nem érvényes, és a WAF megelőzési üzemmódban van, akkor biztonsági fenyegetésként blokkolva van. Ha Érzékelési módban van, a kérés kiértékelésre és naplózásra kerül, de továbbra is továbbításra kerül a backend-kiszolgálóra.

AzAzure Application Gateway belső alkalmazás-terheléselosztóként vagy internetre néző alkalmazás-terheléselosztóként is használható. Az internetre néző alkalmazás-átjáró nyilvános IP-címeket használ. Az internetre néző alkalmazás-átjáró DNS-neve nyilvánosan feloldható a nyilvános IP-címére. Ennek eredményeképpen az internetre néző alkalmazás-átjárók továbbíthatják az internetről érkező ügyfélkéréseket.

A belső alkalmazás-átjárók csak privát IP-címeket használnak. Ha egyéni vagy privát DNS-zónát használ, a tartománynévnek belsőleg feloldhatónak kell lennie az alkalmazáskapu privát IP-címére. Ezért a belső terheléselosztók csak az alkalmazás-átjáró virtuális hálózatához hozzáférő ügyfelek kéréseit tudják továbbítani.

Hogyan irányítja az alkalmazás-átjáró a kéréseket

Ha egy kérés érvényes és a WAF nem blokkolja, az alkalmazás-átjáró kiértékeli a kérésirányítási szabályt, amely a hallgatóhoz tartozik. Ez a művelet határozza meg, hogy melyik backend-poolba irányítsa a kérést.

A kérésirányítási szabály alapján az alkalmazáskapu meghatározza, hogy a hallgató összes kérését egy adott backend-poolba irányítsa, a kéréseket az URL-útvonal alapján különböző backend-poolokba irányítsa, vagy a kéréseket egy másik portra vagy külső webhelyre irányítsa át.

Megjegyzés

A szabályok feldolgozása a v1 SKU portálon felsorolt sorrendben történik.

Amikor az alkalmazás-átjáró kiválasztja a backend-poolt, a kérést a poolban lévő egészséges backend-kiszolgálók egyikére küldi (y.y.y.y.y). A kiszolgáló egészségi állapotát egy állapotszonda határozza meg. Ha a backend-pool több kiszolgálót tartalmaz, az alkalmazás-átjáró körkörös algoritmust használ a kérések egészséges kiszolgálók közötti továbbítására. Ez kiegyensúlyozza a kérések terhelését a kiszolgálókon.

Az alkalmazás-átjáró a backend-kiszolgáló meghatározása után a HTTP-beállítások alapján új TCP-munkamenetet nyit a backend-kiszolgálóval. A HTTP-beállítások megadják a protokollt, a portot és az útválasztással kapcsolatos egyéb beállításokat, amelyek a háttértár-kiszolgálóval való új munkamenet létrehozásához szükségesek.

A HTTP-beállításokban használt port és protokoll határozza meg, hogy az alkalmazás-átjáró és a háttértár-kiszolgálók közötti forgalom titkosított (így valósul meg a végponttól-végpontig TLS) vagy titkosítatlan.

Amikor az alkalmazás-átjáró elküldi az eredeti kérést a backend-kiszolgálónak, tiszteletben tartja a HTTP-beállításokban a hostnév, az elérési útvonal és a protokoll felülbírálásával kapcsolatban elvégzett egyéni konfigurációt. Ez a művelet fenntartja a cookie-alapú munkamenet-affinitást, a kapcsolat lemerítését, az állomásnév kiválasztását a backendről és így tovább.

Figyelem

Ha a backend pool:

  • nyilvános végpont, az alkalmazás-átjáró a frontend nyilvános IP-címét használja a kiszolgáló eléréséhez. Ha nincs nyilvános frontend IP-cím, akkor a kimenő külső kapcsolathoz rendel egyet.
  • Tartalmaz egy belső feloldható FQDN-t vagy egy privát IP-címet, az alkalmazáskapu a kérést a backend-kiszolgálóhoz a példány privát IP-címeinek használatával irányítja.
  • Tartalmaz egy külső végpontot vagy egy külső feloldható FQDN-t, az alkalmazáskapu a kérést a frontend nyilvános IP-címének használatával irányítja a backend-kiszolgálóhoz. A DNS-feloldás egy privát DNS-zónán vagy egyéni DNS-kiszolgálón alapul, ha be van állítva, vagy az Azure által biztosított alapértelmezett DNS-t használja. Ha nincs nyilvános frontend IP-cím, akkor a kimenő külső kapcsolathoz rendel egyet.

Módosítások a kéréshez

Az alkalmazás-átjáró minden kéréshez négy további fejlécet illeszt, mielőtt továbbítja a kéréseket a backendhez. Ezek a fejlécek az x-forwarded-for, x-forwarded-proto, x-forwarded-port és x-original-host. Az x-forwarded-for fejléc formátuma az IP:port vesszővel elválasztott listája.

Az x-forwarded-proto érvényes értékei a HTTP vagy a HTTPS. Az x-forwarded-port azt a portot adja meg, amelyen a kérés az alkalmazás átjárójához érkezett. Az X-original-host fejléc tartalmazza az eredeti host fejlécet, amellyel a kérés érkezett. Ez a fejléc hasznos az Azure weboldal-integrációban, ahol a bejövő host fejléc módosul, mielőtt a forgalom a backend felé továbbításra kerül. Ha a munkamenet-affinitás opcióként engedélyezve van, akkor hozzáad egy átjáró által kezelt affinitási sütit.

Az alkalmazás-átjárót úgy konfigurálhatja, hogy a Rewrite HTTP headers and URL használatával módosítsa a kérés és a válasz fejléceit és az URL-t, vagy a path-override beállítással módosítsa az URI útvonalát. Ha azonban nincs ilyen beállítás, akkor minden bejövő kérést proxyként továbbít a backend felé.

Tudjon meg többet az alkalmazáskapu összetevőiről

.

Szólj hozzá!