- 2019/16/11/2019
- 4 minuter att läsa
-
- a
- j
- D
- s
- v
-
+2
Denna artikel förklarar hur en applikationsgateway tar emot inkommande förfrågningar och dirigerar dem till backend.
Hur en applikationsgateway accepterar en begäran
-
Innan en klient skickar en begäran till en applikationsgateway löser den upp applikationsgatewayens domännamn med hjälp av en DNS-server (Domain Name System). Azure kontrollerar DNS-posten eftersom alla applikationsgatewayer finns i domänen azure.com.
-
Azure DNS returnerar IP-adressen till klienten, som är applikationsgatewayens front-end-IP-adress.
-
Applikationsgatewayen tar emot inkommande trafik på en eller flera lyssnare. En lyssnare är en logisk enhet som kontrollerar anslutningsförfrågningar. Den konfigureras med en fronttend-IP-adress, ett protokoll och ett portnummer för anslutningar från klienter till applikationsgatewayen.
-
Om en brandvägg för webbapplikationer (WAF) används kontrollerar applikationsgatewayen förfrågningshuvudena och kroppen, om den finns, mot WAF-regler. Denna åtgärd avgör om begäran är en giltig begäran eller ett säkerhetshot. Om begäran är giltig dirigeras den till backend. Om begäran inte är giltig och WAF är i förebyggande läge blockeras den som ett säkerhetshot. Om den är i läget Detection utvärderas och loggas begäran, men vidarebefordras ändå till backend-servern.
Azure Application Gateway kan användas som en intern belastningsbalansering av program eller som en belastningsbalansering av program som är riktad mot internet. En internetbaserad applikationsgateway använder offentliga IP-adresser. DNS-namnet för en internetbaserad applikationsgateway är offentligt upplösbart till dess offentliga IP-adress. Detta gör att internetbaserade applikationsgatewayer kan dirigera klientförfrågningar från internet.
Interna applikationsgatewayer använder endast privata IP-adresser. Om du använder en anpassad eller privat DNS-zon ska domännamnet kunna lösas upp internt till programgatewayens privata IP-adress. Därför kan interna lastbalanserare endast dirigera begäranden från klienter med åtkomst till ett virtuellt nätverk för applikationsgatewayen.
Hur en applikationsgateway dirigerar en begäran
Om en begäran är giltig och inte blockeras av WAF utvärderar applikationsgatewayen den regel för dirigeringen av begäran som är associerad med lyssnaren. Den här åtgärden bestämmer vilken backendpool som begäran ska dirigeras till.
Baserat på regeln för omdirigering av begäranden bestämmer applikationsgatewayen om alla begäranden på lyssnaren ska dirigeras till en specifik backendpool, om begäranden ska dirigeras till olika backendpooler baserat på URL-sökvägen eller omdirigera begäranden till en annan port eller en extern webbplats.
Note
Reglerna behandlas i den ordning de listas i portalen för v1 SKU.
När applikationsgatewayen väljer backendpoolen skickas begäran till en av de friska backendservrarna i poolen (y.y.y.y.y). Serverns hälsa fastställs med hjälp av en hälsoundersökning. Om backendpoolen innehåller flera servrar använder applikationsgatewayen en round-robin-algoritm för att dirigera begäran mellan friska servrar. På så sätt balanseras belastningen av förfrågningarna på servrarna.
När programgatewayen fastställer backend-servern öppnar den en ny TCP-session med backend-servern baserat på HTTP-inställningarna. HTTP-inställningarna anger protokoll, port och andra routningsrelaterade inställningar som krävs för att upprätta en ny session med backend-servern.
Porten och protokollet som används i HTTP-inställningarna avgör om trafiken mellan applikationsgatewayen och backend-servrarna är krypterad (vilket gör att TLS från slut till slut uppnås) eller om den är okrypterad.
När en applikationsgateway skickar den ursprungliga begäran till backend-servern respekterar den alla anpassade konfigurationer som gjorts i HTTP-inställningarna och som rör åsidosättande av värdnamn, sökväg och protokoll. Denna åtgärd upprätthåller cookie-baserad sessionsaffinitet, anslutningstömning, val av värdnamn från backend och så vidare.
Note
Om backendpoolen:
- är en offentlig slutpunkt använder programgatewayen sin offentliga IP på fronten för att nå servern. Om det inte finns någon offentlig IP-adress för frontend tilldelas en sådan för den utgående externa anslutningen.
- Innehåller ett FQDN som kan lösas upp internt eller en privat IP-adress, så dirigerar applikationsgatewayen begäran till backend-servern med hjälp av dess instansers privata IP-adresser.
- Innehåller en extern slutpunkt eller ett FQDN som kan lösas upp externt, så dirigerar applikationsgatewayen begäran till backend-servern med hjälp av dess offentliga IP-adress för frontend. DNS-upplösningen baseras på en privat DNS-zon eller en anpassad DNS-server, om den är konfigurerad, eller så används den standard-DNS som tillhandahålls av Azure. Om det inte finns någon offentlig IP-adress för frontend tilldelas en sådan för den utgående externa anslutningen.
Modifieringar av begäran
En applikationsgateway infogar fyra ytterligare rubriker till alla begäranden innan den vidarebefordrar begärandena till backend-serveren. Dessa rubriker är x-forwarded-for, x-forwarded-proto, x-forwarded-port och x-original-host. Formatet för x-forwarded-for-huvudet är en kommaseparerad lista över IP:port.
De giltiga värdena för x-forwarded-proto är HTTP eller HTTPS. X-forwarded-port anger den port där begäran nådde ansökningsgatewayen. X-original-host-huvudet innehåller det ursprungliga värdhuvudet med vilket begäran anlände. Den här rubriken är användbar vid integrering av Azure-webbplatser, där den inkommande värdrubriken ändras innan trafiken dirigeras till backend. Om session affinity är aktiverat som ett alternativ läggs en gateway-managed affinity cookie till.
Du kan konfigurera applikationsgatewayen så att den ändrar begäran- och svarsrubrikerna och URL:n med hjälp av Rewrite HTTP-rubrikerna och URL:n eller så att den ändrar URI-sökvägen med hjälp av en path-override-inställning. Om du inte har konfigurerat det, skickas dock alla inkommande begäranden via proxy till backend.
Lär dig mer om komponenterna i applikationsgatewayen