Dela via


Konfiguration av serverdelsinställningar för Application Gateway

Med serverdelsinställningarna kan du hantera konfigurationerna för serverdelsanslutningar som upprättats från en programgatewayresurs till en server i serverdelspoolen. En konfiguration av serverdelsinställningar kan associeras med en eller flera routningsregler.

Typer av serverdelsinställningar i Application Gateway

Även om portalanvändare endast ser alternativet "Serverdelsinställningar" har API-användare åtkomst till två typer av inställningar. Du måste använda rätt konfiguration enligt protokollet.

  • HTTP-inställningar för serverdelen – Det är för Layer 7-proxykonfigurationer som stöder HTTP- och HTTPS-protokoll.
  • Serverdelsinställningar – Det är för Layer 4-proxykonfigurationer (förhandsversion) som stöder TLS- och TCP-protokoll.

Azure Application Gateway använder gatewayhanterade cookies för att underhålla användarsessioner. När en användare skickar den första begäran till Application Gateway anger den en cookie för tillhörighet i svaret med ett hash-värde som innehåller sessionsinformationen. Den här processen gör det möjligt att dirigera efterföljande begäranden som bär affinitetskakan till samma backendserver, vilket bibehåller anknytning.

Den här funktionen är användbar när du vill behålla en användarsession på samma server och när sessionstillståndet sparas lokalt på servern för en användarsession. Om programmet inte kan hantera cookiebaserad tillhörighet kan du inte använda den här funktionen. Om du vill använda den kontrollerar du att klienterna stöder cookies.

Anteckning

Vissa sårbarhetsgenomsökningar kan flagga Application Gateway-cookien för tillhörighet eftersom flaggorna Secure eller HttpOnly inte har angetts. Dessa genomsökningar tar inte hänsyn till att data i cookien genereras med hjälp av en enkelriktad hash. Cookien innehåller ingen användarinformation och används enbart för routning.

Uppdateringen Chromium browserv80 gav ett mandat där HTTP-cookies utan SameSite-attribut måste behandlas som SameSite=Lax. För CORS-begäranden (resursdelning mellan ursprung), om cookien måste skickas i en tredje parts kontext, måste den använda attributen SameSite=None; Secure och den bör endast skickas via HTTPS. I ett scenario med endast HTTP skickar webbläsaren annars inte cookies i kontexten från tredje part. Målet med den här uppdateringen från Chrome är att förbättra säkerheten och undvika CSRF-attacker (Cross-Site Request Forgery).

För att stödja den här ändringen, från och med 17 februari 2020, kommer Application Gateway (alla SKU-typer) att mata in en annan cookie med namnet ApplicationGatewayAffinityCORS utöver den befintliga ApplicationGatewayAffinity-cookien . ApplicationGatewayAffinityCORS-cookien har ytterligare två attribut tillagda ("SameSite=None; Säker") så att klibbiga sessioner bibehålls även för begäranden mellan ursprung.

Standardnamnet på affinitets-cookien är ApplicationGatewayAffinity och du kan ändra det. Om du i nätverkstopologin distribuerar flera programgatewayer på rad måste du ange unika cookienamn för varje resurs. Om du använder ett anpassat cookienamn för tillhörighet läggs ytterligare en cookie till med CORS som suffix. Till exempel: CustomCookieNameCORS.

Anteckning

Om attributet SameSite=None har angetts är det obligatoriskt att cookien även innehåller flaggan Secure och måste skickas via HTTPS. Om sessionstillhörighet krävs via CORS måste du migrera din arbetsbelastning till HTTPS. Referera till dokumentationen för TLS-avlastning och end-to-end TLS för Application Gateway. Se SSL-översikten, Konfigurera en applikationsgateway med TLS-avslutning och Konfigurera fullständig TLS.

Tömning av anslutningar

Anslutningsdränering hjälper dig att på ett smidigt sätt ta bort medlemmar i serverdelspoolen under planerade tjänstuppdateringar. Den gäller för serverdelsinstanser som uttryckligen tas bort från serverdelspoolen.

Du kan använda den här inställningen för alla medlemmar i serverdelspoolen genom att aktivera anslutningsdränering i serverdelsinställningen. Det säkerställer att alla avregistreringsinstanser i en serverdelspool inte tar emot några nya begäranden/anslutningar samtidigt som befintliga anslutningar bibehålls förrän det konfigurerade tidsgränsvärdet. Den här processen gäller även för WebSocket-anslutningar.

Konfigurationstyp Värde
Standardvärde när anslutningsdränering inte är aktiverat i serverdelsinställningen 30 sekunder
Användardefinierat värde när anslutningsdränering är aktiverat i serverdelsinställningen 1 till 3 600 sekunder

Det enda undantaget till den här processen är begäranden som är avsedda för att avregistrera instanser på grund av gatewayhanterad sessionstillhörighet. Dessa begäranden fortsätter att vidarebefordras till avregistreringsinstanserna.

Anteckning

Det finns en begränsning där en konfigurationsuppdatering avslutar pågående anslutningar efter tidsgränsen för anslutningens tömning. För att åtgärda den här begränsningen måste du öka tidsgränsen för anslutningsdränering i serverdelsinställningarna till ett värde som är högre än den maximala förväntade nedladdningstiden för klienten.

Protokoll

Application Gateway stöder både HTTP och HTTPS för att ruta förfrågningar till backend-servrarna. Om du väljer HTTP är trafiken till serverdelsservrarna okrypterad. Om okrypterad kommunikation inte är acceptabel väljer du HTTPS.

Den här inställningen kombinerad med HTTPS i lyssnaren stöder TLS från slutpunkt till slutpunkt. På så sätt kan du på ett säkert sätt överföra känsliga data som krypterats till serverdelen. Varje serverdelsserver i serverdelspoolen som har TLS från slutpunkt till slutpunkt måste konfigureras med ett certifikat för att tillåta säker kommunikation.

Hamn

Den här inställningen anger den port som backend-servrarna lyssnar på för trafik från applikationsgatewayen. Du kan konfigurera portar från 1 till 65535.

Tillförlitligt rotcertifikat

När du väljer HTTPS-protokollet i serverdelsinställningarna använder programgatewayresursen sitt standardarkiv för betrodd rotcertifikatutfärdare för att verifiera kedjan och äktheten för certifikatet som tillhandahålls av serverdelsservern.

Som standard innehåller Application Gateway-resursen populära CA-certifikat, vilket möjliggör sömlösa TLS-anslutningar för serverdelen när serverdelsservercertifikatet utfärdas av en offentlig certifikatutfärdare. Men om du tänker använda en privat certifikatutfärdare eller ett självgenererat certifikat med fullständig TLS-validering måste du ange motsvarande rotcertifikatutfärdarcertifikat (.cer) i konfigurationen för serverdelsinställningar.

Https-valideringsinställningar för serverdelen

När HTTPS har valts i Serverdelsinställningarna för Azure Application Gateway utför gatewayen fullständig verifiering av TLS-handskakning samtidigt som en säker anslutning upprättas med serverdelsservrar. Dessa valideringar omfattar:

  1. Verifiera certifikatkedjan för att säkerställa att certifikatet är betrodd.
  2. Verifiera certifikatets ämnesnamn mot den servernamnsindikator (SNI) som skickades av Application Gateway.
  3. Verifiera att certifikatet upphör att gälla för att bekräfta om certifikatet fortfarande är giltigt.

Standardvalideringsinställningarna säkerställer säker TLS-kommunikation mellan gatewayen och serverdelstjänsterna. I vissa scenarier kan det vara nödvändigt att justera en eller flera av dessa valideringsinställningar. För att tillgodose olika kundkrav erbjuder Application Gateway följande konfigurerbara alternativ. Du kan använda endera eller båda alternativen efter behov.

Ett diagram som visar portalvyn över de TLS-valideringskontroller som är tillgängliga för kunder.

Egenskaper Värden
validateCertChainAndExpiry Typ: Boolesk (sant eller falskt). Standardinställningen är true. Detta verifierar eller hoppar över verifieringen av både certifikatkedjan och förfallodatumet.
validateSNI Typ: Boolesk (sant eller falskt). Standardinställningen är true. Den kontrollerar om det gemensamma namnet på certifikatet som tillhandahålls av serverdelsservern matchar SNI-värdet (Server Name Indication) som skickades av Application Gateway.
sniName Typ: Sträng. Den här egenskapen krävs endast när validateSNI anges som true. Du kan ange ett SNI-värde som matchar det gemensamma namnet på certifikatet på serverdelen. Som standard använder programgatewayen den inkommande begärans värdhuvud som SNI.

Anteckning

  • Vi rekommenderar att du behåller alla valideringar aktiverade för produktionsmiljöer. Att inaktivera vissa eller alla valideringar föreslås endast i test- och utvecklingssyfte, till exempel när självsignerade certifikat används.
  • De här inställningarna gäller inte för testprobfunktion när du lägger till ett anpassat hälsoprov. Därför kan du se skillnader i resultatet när du jämför med periodiska hälsoavsökningar.
  • Stöds för närvarande inte för TLS-proxy.
  • PowerShell och CLI stöds snart.

Timeout för begäran

Den här inställningen är det antal sekunder som programgatewayen väntar på att få ett svar från serverdelsservern. Standardvärdet är 20 sekunder. Du kanske dock vill justera den här inställningen efter programmets behov. Godtagbara värden är från 1 sekund till 86400 sekunder (24 timmar).

Åsidosätt bakändssökväg

Med den här inställningen kan du konfigurera en valfri anpassad vidarebefordringsväg som ska användas när begäran vidarebefordras till backend. Alla delar av den inkommande sökvägen som matchar den anpassade sökvägen i fältet för åsidosättande av bakgrundssökväg kopieras till den vidarebefordrade väg. Följande tabell visar hur den här funktionen fungerar:

  • När HTTP-inställningen är kopplad till en grundläggande regel för begärandedirigering:

    Ursprunglig begäran Åsidosätt bakändssökväg Begäran vidarebefordras till backend
    /hem/ /åsidosätta/ /override/home/
    /home/secondhome/ /åsidosätta/ /override/home/secondhome/
  • När HTTP-inställningen är kopplad till en sökvägsbaserad regel för begärandedirigering:

    Ursprunglig begäran Sökvägsregel Åsidosätt bakändssökväg Begäran vidarebefordras till backend
    /pathrule/home/ /pathrule* /åsidosätta/ /override/home/
    /pathrule/home/secondhome/ /pathrule* /åsidosätta/ /override/home/secondhome/
    /hem/ /pathrule* /åsidosätta/ /override/home/
    /home/secondhome/ /pathrule* /åsidosätta/ /override/home/secondhome/
    /pathrule/home/ /pathrule/home* /åsidosätta/ /åsidosätta/
    /pathrule/home/secondhome/ /pathrule/home* /åsidosätta/ /override/andrabostad/
    /pathrule/ /pathrule/ /åsidosätta/ /åsidosätta/

Använd anpassad prob

Den här inställningen associerar en anpassad avsökning med en HTTP-inställning. Du kan bara associera en anpassad avsökning med en HTTP-inställning. Om du inte uttryckligen associerar en anpassad avsökning används standardavsökningen för att övervaka hälsotillståndet för serverdelen. Vi rekommenderar att du skapar en anpassad sond för större kontroll över hälsoövervakningen av dina bakändar.

Anteckning

Den anpassade proben övervakar inte tillståndet för back-end-poolen om inte motsvarande HTTP-inställning uttryckligen är kopplad till en lyssnare.

Konfigurera värdnamnet

Med Application Gateway kan anslutningen som upprättas till serverdelen använda ett annat värdnamn än det som används av klienten för att ansluta till Application Gateway. Även om den här konfigurationen kan vara användbar i vissa fall bör du vara försiktig när du åsidosätter värdnamnet så att det skiljer sig mellan applikationsgatewayen och klienten i relation till backend-målet.

I produktionsmiljöer är det bästa praxis att använda samma värdnamn för anslutningen från klient till applikationsgateway och från applikationsgateway till backend-målanslutning. Den här metoden undviker potentiella problem med absoluta URL:er, omdirigerings-URL:er och värdbundna cookies.

Innan du konfigurerar Application Gateway som avviker från detta bör du granska konsekvenserna av den konfiguration som beskrivs mer detaljerat i Architecture Center: Bevara det ursprungliga HTTP-värdnamnet mellan en omvänd proxy och dess bakgrundswebbapplikation

Det finns två aspekter av en HTTP-inställning som påverkar Host HTTP-huvudet som används av Application Gateway för att ansluta till serverdelen:

  • Välj värdnamn från backend-adress
  • "Åsidosättning av värdnamn"

Välj värdnamn från backend-adress

Den här funktionen anger dynamiskt värdhuvudet i förfrågan till värdnamnet för den bakomliggande poolen. Den använder en IP-adress eller ett fullständigt domännamn.

Den här funktionen hjälper till när domännamnet för serverdelen skiljer sig från DNS-namnet på programgatewayen, och serverdelen förlitar sig på en specifik värdrubrik för att matcha mot rätt slutpunkt.

Ett exempelfall är multitenanttjänster som bakändalösning. En apptjänst är en tjänst för flera klientorganisationer som använder ett delat utrymme med en enda IP-adress. Därför kan en apptjänst endast nås via de värdnamn som har konfigurerats i de anpassade domäninställningarna.

Som standard är det anpassade domännamnet example.azurewebsites.net. Om du vill komma åt apptjänsten med hjälp av en programgateway via ett värdnamn som inte uttryckligen är registrerat i apptjänsten eller via programgatewayens FQDN kan du åsidosätta värdnamnet i den ursprungliga begäran till apptjänstens värdnamn. Det gör du genom att aktivera inställningen välj värdnamn från serverdelsadressen .

För en anpassad domän vars befintliga anpassade DNS-namn mappas till apptjänsten är det inte rekommenderat att aktivera välja värdnamn från backend-adress.

Anteckning

Den här inställningen krävs inte för App Service Environment, som är en dedikerad distribution.

Åsidosättning av värdnamn

Den här funktionen ersätter värdhuvudet i den inkommande begäran på programgatewayen med det värdnamn som du anger.

Om www.contoso.com anges i inställningen Värdnamn, ändras den ursprungliga begäran *https://appgw.eastus.cloudapp.azure.com/path1 till *https://www.contoso.com/path1 när begäran vidarebefordras till backendservern.

Dedikerad serverdelsanslutning

Azure Application Gateway återanvänder som standard inaktiva serverdelsanslutningar för att optimera resursanvändningen för TCP-anslutningar för både Application Gateway och serverdelen. För att stödja säkerhetsfunktioner i kunddatasökvägar som kräver unika serverdelsanslutningar per klient tillhandahåller Azure Application Gateway V2 dedikerade anslutningar till serverdelsservrar.

Skärmbild av nätverksflöden via Application Gateway layer 7-proxy.

Den här funktionen upprättar direkt, en-till-en-mappning mellan frontend- och backendanslutningar, vilket garanterar beständig anslutning för varje enskild klient.

Anteckning

Om du vill aktivera NTLM- eller Kerberos-genomströmningsautentisering ska du kontrollera att inställningen Dedikerad backend-anslutning är aktiverad. Den här konfigurationen upprätthåller en en-till-en-mappning mellan klientdels- och serverdelsanslutningar, vilket är viktigt för att bevara sessionsintegriteten som krävs av dessa autentiseringsprotokoll.

Viktigt!

Dedikerad serverdelsanslutning leder till en ökning av antalet serverdelsanslutningar och kan därför kräva fler resurser för att stödja de ökade samtidiga anslutningarna på Application Gateway och serverdelsservrarna. På Application Gateway måste du överväga att öka antalet instanser eller aktivera automatisk skalning.

När serverdelen är en fjärrserver använder Application Gateway-instanser SNAT-portar för varje anslutning. Eftersom varje klientanslutning upprättar en dedikerad serverdelsanslutning ökar SNAT-portförbrukningen på motsvarande sätt. Därför är det viktigt att ta hänsyn till eventuell SNAT-portöverbelastning. Gå till metodtipsen för arkitekturen för vägledning.

Dedikerad serverdelsanslutning stöds inte med HTTP/2.

Nästa steg