Az Application Gateway működése
Ez a cikk azt ismerteti, hogyan fogadja az Application Gateway a bejövő kéréseket, és hogyan irányítja őket a háttérrendszerbe.
Hogyan fogadja el az Application Gateway a kérést?
Mielőtt egy ügyfél kérést küld egy application Gatewaynek, feloldja az application gateway tartománynevét egy DNS-kiszolgáló használatával. Az Azure azért vezérli a DNS-bejegyzést, mert az összes application gateway a azure.com tartományban található.
Az Azure DNS visszaadja az IP-címet az ügyfélnek, amely az application gateway előtérbeli IP-címe.
Az Application Gateway egy vagy több figyelőn fogadja a bejövő forgalmat. A figyelő egy logikai entitás, amely a kapcsolatkéréseket ellenőrzi. Előtér IP-címmel, protokolllal és portszámmal van konfigurálva az ügyfelek és az application gateway közötti kapcsolatokhoz.
Ha webalkalmazási tűzfal (WAF) van használatban, az Application Gateway a kérelemfejléceket és a törzset , ha van ilyen, WAF-szabályok szerint ellenőrzi. Ez a művelet határozza meg, hogy a kérés érvényes kérés vagy biztonsági fenyegetés-e. Ha a kérés érvényes, a rendszer a háttérrendszerhez irányítja. Ha a kérés érvénytelen, és a WAF megelőzési módban van, az biztonsági fenyegetésként le van tiltva. Ha észlelési módban van, a rendszer kiértékeli és naplózza a kérést, de továbbra is továbbítja a háttérkiszolgálóra.
Azure-alkalmazás Átjáró használható belső alkalmazás terheléselosztóként vagy internetkapcsolattal rendelkező alkalmazás terheléselosztójaként. Az internetkapcsolattal rendelkező alkalmazásátjárók nyilvános IP-címeket használnak. Az internetes alkalmazásátjáró DNS-neve nyilvánosan feloldható a nyilvános IP-címére. Ennek eredményeképpen az internetes alkalmazásátjárók átirányíthatják az ügyfélkéréseket az internetről.
A belső alkalmazásátjárók csak privát IP-címeket használnak. Egyéni vagy saját DNS zóna használata esetén a tartománynévnek belsőleg feloldhatónak kell lennie az Application Gateway privát IP-címére. Ezért a belső terheléselosztók csak az application gateway virtuális hálózatához hozzáféréssel rendelkező ügyfelektől érkező kéréseket irányíthatják.
Hogyan irányít egy application gateway egy kérést?
Ha egy kérés érvényes, és a WAF nem tiltja le, az application gateway kiértékeli a figyelőhöz társított kérés-útválasztási szabályt. Ez a művelet határozza meg, hogy melyik háttérkészlethez szeretné irányítani a kérést.
A kérések útválasztási szabálya alapján az Application Gateway meghatározza, hogy a figyelő összes kérését egy adott háttérkészlethez szeretné-e átirányítani, a kéréseket az URL-cím alapján különböző háttérkészletekbe irányítani, vagy átirányítani a kéréseket egy másik portra vagy külső helyre.
Feljegyzés
A szabályok feldolgozása az 1. verziós termékváltozat portálján felsorolt sorrendben történik.
Amikor az Application Gateway kiválasztja a háttérkészletet, elküldi a kérést a készlet egyik kifogástalan háttérkiszolgálójának (y.y.y.y). A kiszolgáló állapotát egy állapotadat-mintavétel határozza meg. Ha a háttérkészlet több kiszolgálót tartalmaz, az Application Gateway egy ciklikus időszeleteléses algoritmussal irányítja át a kéréseket az kifogástalan állapotú kiszolgálók között. Ez a terhelés kiegyensúlyozza a kiszolgálókon lévő kéréseket.
Miután az Application Gateway meghatározta a háttérkiszolgálót, megnyílik egy új TCP-munkamenet a háttérkiszolgálóval a HTTP-beállítások alapján. A HTTP-beállítások határozzák meg a protokollt, a portot és az útválasztással kapcsolatos egyéb beállításokat, amelyek szükségesek ahhoz, hogy új munkamenetet hozzanak létre a háttérkiszolgálóval.
A HTTP-beállításokban használt port és protokoll határozza meg, hogy az application gateway és a háttérkiszolgálók közötti forgalom titkosítva van-e (így a végpontok közötti TLS-t hajtja végre), vagy titkosítatlan.
Amikor egy application gateway elküldi az eredeti kérést a háttérkiszolgálónak, az tiszteletben tartja a HTTP-beállításokban a gazdagépnév, az elérési út és a protokoll felülírásával kapcsolatos egyéni konfigurációkat. Ez a művelet fenntartja a cookie-alapú munkamenet-affinitást, a kapcsolat kiürítését, a gazdagépnév kiválasztását a háttérrendszerből stb.
Feljegyzés
Ha a háttérkészlet:
- Nyilvános végpont, az Application Gateway az előtérbeli nyilvános IP-címével éri el a kiszolgálót. Ha nincs előtérbeli nyilvános IP-cím, a rendszer a kimenő külső kapcsolathoz rendel hozzá egyet.
- Belsőleg feloldható teljes tartománynevet vagy privát IP-címet tartalmaz, az Application Gateway a példány privát IP-címeivel irányítja a kérést a háttérkiszolgálóra.
- Külső végpontot vagy külsőleg feloldható teljes tartománynevet tartalmaz, az Application Gateway az előtér nyilvános IP-címével irányítja a kérést a háttérkiszolgálóra. Ha az alhálózat szolgáltatásvégpontokat tartalmaz, az Application Gateway a saját IP-címével irányítja a kérést a szolgáltatáshoz. A DNS-feloldás egy privát DNS-zónán vagy egyéni DNS-kiszolgálón alapul, ha konfigurálva van, vagy az alapértelmezett Azure-beli DNS-t használja. Ha nincs előtérbeli nyilvános IP-cím, a rendszer a kimenő külső kapcsolathoz rendel hozzá egyet.
Háttérkiszolgáló DNS-feloldási megoldása
Ha egy háttérkészlet kiszolgálója teljes tartománynévvel (FQDN) van konfigurálva, az Application Gateway DNS-kereséssel lekéri a tartománynév IP-címét. Az IP-értéket az application gateway gyorsítótárában tárolja a rendszer, hogy gyorsabban elérhesse a célokat a bejövő kérések kiszolgálása során.
Az Application Gateway megőrzi ezt a gyorsítótárazott információt a DNS-rekord TTL-jének megfelelő időszakra (élettartam), és a TTL lejárata után végrehajt egy friss DNS-keresést. Ha egy átjáró változást észlel az IP-címben az azt követő DNS-lekérdezésben, elkezdi átirányítani a forgalmat erre a frissített célhelyre. Olyan problémák esetén, mint a DNS-keresés nem kap választ, vagy a rekord már nem létezik, az átjáró továbbra is az utolsó ismert jó IP-címet használja. Ez minimális hatással van az adatútvonalra.
Fontos
- Ha egyéni DNS-kiszolgálókat használ az Application Gateway virtuális hálózatával, fontos, hogy minden kiszolgáló egységesen válaszoljon ugyanazokkal a DNS-értékekkel. Amikor az Application Gateway egy példánya DNS-lekérdezést ad ki, a kiszolgálótól kapott értéket használja, amely először válaszol.
- A helyszíni egyéni DNS-kiszolgálók felhasználóinak biztosítaniuk kell az Azure DNS-hez való kapcsolódást az Azure DNS Private Resolver (ajánlott) vagy egy DNS-továbbító virtuális gépen keresztül, ha privát végponthoz saját DNS zónát használnak.
A kérelem módosítása
Az Application Gateway hat további fejlécet szúr be az összes kérésbe, mielőtt továbbítanák a kéréseket a háttérrendszernek. Ezek az élőfejek x-forwarded-for, x-forwarded-port, x-forwarded-proto, x-original-host, x-original-url és x-appgw-trace-id. Az x-forwarded-for fejléc formátuma az IP:port vesszővel tagolt listája.
Az x-forwarded-proto érvényes értékei HTTP vagy HTTPS. Az X-forwarded-port azt a portot adja meg, ahol a kérés elérte az Application Gatewayt. Az X-original-host fejléc tartalmazza azt az eredeti gazdagépfejlécet, amellyel a kérés érkezett. Ez a fejléc hasznos az Azure-webhelyintegrációban, ahol a bejövő gazdagép fejléce módosul, mielőtt a forgalmat a háttérrendszerbe irányítanák. Ha a munkamenet-affinitás engedélyezve van lehetőségként, akkor hozzáad egy átjáró által felügyelt affinitási cookie-t.
Az X-appgw-trace-id egy egyedi guid, amelyet az Application Gateway hoz létre minden ügyfélkéréshez, és amely a háttérkészlet tagjának továbbított kérésben jelenik meg. A guid 32 alfanumerikus karakterből áll, kötőjelek nélkül (például: ac882cd65a2712a0fe1289ec2bb6aee7). Ez a guid használható az Application Gateway által fogadott és a háttérkészlet egy tagjának kezdeményezett kérés korrelálására a diagnosztikai naplók tranzakcióazonosító tulajdonságán keresztül.
Konfigurálhatja az Application Gatewayt a kérelem- és válaszfejlécek és URL-címek módosítására HTTP-fejlécek és URL-címek újraírásával, vagy az URI-elérési út módosításához egy elérési út felülbírálási beállításával. Ha azonban nincs konfigurálva erre, a rendszer az összes bejövő kérést a háttérrendszerre állítja.
Következő lépések
- Tudnivalók az Application Gateway összetevőiről
- Azure-alkalmazás Átjáró funkcióinak áttekintése