overzicht van Application Gateway statuscontrole

Azure Application Gateway controleert standaard de status van alle resources in de back-endpool en verwijdert automatisch alle resources die als beschadigd worden beschouwd uit de pool. Application Gateway blijft de exemplaren met slechte status bewaken en voegt deze weer aan de goede back-end-adrespool toe zodra ze beschikbaar komen en beantwoorden aan de statuscontroles. Application Gateway verzendt standaard de statustests met dezelfde poort die is gedefinieerd in de back-end-HTTP-instellingen. Een aangepaste testpoort kan worden geconfigureerd met behulp van een aangepaste statustest.

Het BRON-IP-adres dat Application Gateway gebruikt voor statustests, is afhankelijk van de back-endpool:

  • Als het serveradres in de back-endpool een openbaar eindpunt is, is het bronadres het openbare IP-adres van de front-end van de toepassingsgateway.
  • Als het serveradres in de back-endpool een privé-eindpunt is, is het bron-IP-adres afkomstig uit de privé-IP-adresruimte van het toepassingsgatewaysubnet.

application gateway probe example

Naast het gebruik van standaardstatustestcontrole, kunt u ook de statustest aanpassen aan de vereisten van uw toepassing. In dit artikel worden zowel standaard- als aangepaste statustests behandeld.

Notitie

In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Standaardstatustest

Een toepassingsgateway configureert automatisch een standaardstatustest wanneer u geen aangepaste testconfiguratie instelt. Het bewakingsgedrag werkt door een HTTP GET-aanvraag te verzenden naar de IP-adressen of FQDN die zijn geconfigureerd in de back-endpool. Voor standaardtests als de http-instellingen voor de back-end zijn geconfigureerd voor HTTPS, gebruikt de test HTTPS om de status van de back-endservers te testen.

Bijvoorbeeld: u configureert uw toepassingsgateway voor het gebruik van back-endservers A, B en C voor het ontvangen van HTTP-netwerkverkeer op poort 80. De standaardstatuscontrole test de drie servers elke 30 seconden voor een gezond HTTP-antwoord met een time-out van 30 seconden voor elke aanvraag. Een gezond HTTP-antwoord heeft een statuscode tussen 200 en 399. In dit geval ziet de HTTP GET-aanvraag voor de statustest er als volgt http://127.0.0.1/uit.

Als de standaardtestcontrole mislukt voor server A, stopt de toepassingsgateway met het doorsturen van aanvragen naar deze server. De standaardtest blijft elke 30 seconden controleren op server A. Wanneer server A met succes reageert op één aanvraag van een standaardstatustest, begint application gateway de aanvragen opnieuw door te sturen naar de server.

Standaardinstellingen voor statustest

Testeigenschap Waarde Beschrijving
Test-URL <protocol>://127.0.0.1:<poort>/ Het protocol en de poort worden overgenomen van de BACK-end-HTTP-instellingen waaraan de test is gekoppeld
Interval 30 De hoeveelheid tijd in seconden die moet worden gewacht voordat de volgende statustest wordt verzonden.
Time-out 30 De hoeveelheid tijd in seconden wacht de toepassingsgateway op een testantwoord voordat de test als beschadigd wordt gemarkeerd. Als een test als in orde wordt geretourneerd, wordt de bijbehorende back-end onmiddellijk gemarkeerd als in orde.
Drempelwaarde voor beschadigde status 3 Bepaalt hoeveel tests moeten worden verzonden voor het geval er een fout opgetreden is in de normale statustest. In v1 SKU worden deze aanvullende statustests snel achter elkaar verzonden om de status van de back-end snel te bepalen en wacht niet op het testinterval. In het geval van v2-SKU wachten de statustests op het interval. De back-endserver wordt gemarkeerd nadat het aantal opeenvolgende testfouten de drempelwaarde voor beschadigde status heeft bereikt.

De standaardtest kijkt alleen naar <protocol>://127.0.0.1:<poort> om de status te bepalen. Als u de statustest moet configureren om naar een aangepaste URL te gaan of andere instellingen te wijzigen, moet u aangepaste tests gebruiken. Zie Overzicht van TLS-beëindiging en end-to-end TLS met Application Gateway voor meer informatie over HTTPS-tests.

Testintervallen

Alle exemplaren van Application Gateway de back-end onafhankelijk van elkaar testen. Dezelfde testconfiguratie is van toepassing op elk Application Gateway exemplaar. Als de testconfiguratie bijvoorbeeld elke 30 seconden statuscontroles moet verzenden en de toepassingsgateway twee exemplaren heeft, verzenden beide instanties de statustest om de 30 seconden.

Ook als er meerdere listeners zijn, test elke listener de back-end onafhankelijk van elkaar. Als er bijvoorbeeld twee listeners naar dezelfde back-endpool wijzen op twee verschillende poorten (geconfigureerd door twee http-instellingen voor de back-end), worden door elke listener onafhankelijk van elkaar dezelfde back-end getest. In dit geval zijn er twee tests van elk toepassingsgateway-exemplaar voor de twee listeners. Als er in dit scenario twee exemplaren van de toepassingsgateway zijn, ziet de virtuele back-endmachine vier tests volgens het geconfigureerde testinterval.

Aangepaste statustest

Met aangepaste tests kunt u gedetailleerdere controle over de statuscontrole hebben. Wanneer u aangepaste tests gebruikt, kunt u een aangepaste hostnaam, URL-pad, testinterval en hoeveel mislukte antwoorden moeten worden geaccepteerd voordat u het exemplaar van de back-endpool markeert als beschadigd, enzovoort.

Aangepaste instellingen voor statustest

De volgende tabel bevat definities voor de eigenschappen van een aangepaste statustest.

Testeigenschap Beschrijving
Name Naam van de test. Deze naam wordt gebruikt om de test te identificeren en te raadplegen in de back-end-HTTP-instellingen.
Protocol Protocol dat wordt gebruikt om de test te verzenden. Dit moet overeenkomen met het protocol dat is gedefinieerd in de back-end-HTTP-instellingen waaraan het is gekoppeld
Host Hostnaam waarmee de test moet worden verzonden. In v1 SKU wordt deze waarde alleen gebruikt voor de hostheader van de testaanvraag. In v2 SKU wordt deze zowel als hostheader als SNI gebruikt
Pad Relatief pad van de test. Een geldig pad begint met '/'
Poort Indien gedefinieerd, wordt dit gebruikt als de doelpoort. Anders wordt dezelfde poort gebruikt als de HTTP-instellingen waaraan deze is gekoppeld. Deze eigenschap is alleen beschikbaar in de v2-SKU
Interval Testinterval in seconden. Deze waarde is het tijdsinterval tussen twee opeenvolgende tests
Time-out Time-out van test in seconden. Als er binnen deze time-outperiode geen geldig antwoord wordt ontvangen, wordt de test gemarkeerd als mislukt
Drempelwaarde voor beschadigde status Aantal nieuwe pogingen testen. De back-endserver is gemarkeerd nadat het aantal opeenvolgende testfouten de drempelwaarde voor beschadigde status heeft bereikt

Testkoppeling

Standaard wordt een HTTP(S)-antwoord met statuscode tussen 200 en 399 beschouwd als in orde. Aangepaste statustests ondersteunen bovendien twee overeenkomende criteria. Overeenkomende criteria kunnen worden gebruikt om desgewenst de standaardinterpretatie te wijzigen van wat een gezonde reactie maakt.

Hier volgen overeenkomende criteria:

  • Overeenkomende HTTP-antwoordstatuscode : criterium voor het accepteren van door de gebruiker opgegeven HTTP-antwoordcode of antwoordcodebereiken. Afzonderlijke door komma's gescheiden antwoordstatuscodes of een bereik van statuscode wordt ondersteund.
  • Overeenkomende HTTP-antwoordtekst : criterium voor het vergelijken van tests waarmee wordt gekeken naar de hoofdtekst van het HTTP-antwoord en overeenkomt met een door de gebruiker opgegeven tekenreeks. De overeenkomst zoekt alleen naar de aanwezigheid van de door de gebruiker opgegeven tekenreeks in de antwoordtekst en is geen volledige reguliere expressieovereenkomst.

Criteria voor overeenkomst kunnen worden opgegeven met behulp van de New-AzApplicationGatewayProbeHealthResponseMatch cmdlet.

Bijvoorbeeld:

$match = New-AzApplicationGatewayProbeHealthResponseMatch -StatusCode 200-399
$match = New-AzApplicationGatewayProbeHealthResponseMatch -Body "Healthy"

Zodra de criteria voor overeenkomst zijn opgegeven, kan deze worden gekoppeld aan de testconfiguratie met behulp van een -Match parameter in PowerShell.

NSG-overwegingen

U moet binnenkomend internetverkeer toestaan op TCP-poorten 65503-65534 voor de Application Gateway v1 SKU en TCP-poorten 65200-65535 voor de v2-SKU met het doelsubnet als Any en source as GatewayManager-servicetag. Dit poortbereik is nodig voor communicatie met de Azure-infrastructuur.

Bovendien kan de uitgaande internetverbinding niet worden geblokkeerd en moet binnenkomend verkeer dat afkomstig is van de AzureLoadBalancer-tag zijn toegestaan.

Zie Overzicht van Application Gateway-configuratie voor meer informatie.

Volgende stappen

Nadat u meer hebt geleerd over Application Gateway statuscontrole, kunt u een aangepaste statustest configureren in de Azure Portal of een aangepaste statustest met behulp van PowerShell en het Azure Resource Manager-implementatiemodel.