Ongeldige gatewayfouten oplossen - Azure-toepassing-gateway (2024)

  • Artikel

Meer informatie over het oplossen van slechte gatewayfouten (502) die zijn ontvangen bij het gebruik van Azure-toepassing Gateway.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Overzicht

Nadat u een toepassingsgateway hebt geconfigureerd, is een van de fouten die u kunt zien serverfout: 502 - Webserver heeft een ongeldig antwoord ontvangen tijdens het fungeren als een gateway of proxyserver. Deze fout kan om de volgende hoofdredenen optreden:

  • NSG, UDR of Aangepaste DNS blokkeert de toegang tot leden van de back-endpool.
  • Back-end-VM's of exemplaren van virtuele-machineschaalset reageren niet op de standaardstatustest.
  • Ongeldige of onjuiste configuratie van aangepaste statustests.
  • Azure-toepassing de back-endpool van de gateway niet is geconfigureerd of leeg.
  • Geen van de VM's of exemplaren in een virtuele-machineschaalset is in orde.
  • Time-out van aanvraag of verbindingsproblemen met gebruikersaanvragen.

Probleem met netwerkbeveiligingsgroep, door de gebruiker gedefinieerde route of aangepaste DNS

Oorzaak

Als de toegang tot de back-end wordt geblokkeerd vanwege een NSG, UDR of aangepaste DNS, kunnen application gateway-exemplaren de back-endpool niet bereiken. Dit probleem veroorzaakt testfouten, wat resulteert in 502-fouten.

De NSG/UDR kan aanwezig zijn in het subnet van de toepassingsgateway of in het subnet waarin de toepassings-VM's worden geïmplementeerd.

Op dezelfde manier kan de aanwezigheid van een aangepaste DNS in het VNet ook problemen veroorzaken. Een FQDN die wordt gebruikt voor leden van de back-endpool kan mogelijk niet correct worden omgezet door de gebruiker geconfigureerde DNS-server voor het VNet.

Oplossing

Valideer de NSG-, UDR- en DNS-configuratie door de volgende stappen uit te voeren:

  1. Controleer de NSG's die zijn gekoppeld aan het subnet van de toepassingsgateway. Zorg ervoor dat communicatie met back-end niet wordt geblokkeerd. Zie Netwerkbeveiligingsgroepen voor meer informatie.

  2. Controleer de UDR die is gekoppeld aan het subnet van de toepassingsgateway. Zorg ervoor dat de UDR geen verkeer wegleidt van het back-endsubnet. Controleer bijvoorbeeld op routering naar virtuele netwerkapparaten of standaardroutes die worden geadverteerd naar het subnet van de toepassingsgateway via ExpressRoute/VPN.

    $vnet = Get-AzVirtualNetwork -Name vnetName -ResourceGroupName rgNameGet-AzVirtualNetworkSubnetConfig -Name appGwSubnet -VirtualNetwork $vnet
  3. Controleer de effectieve NSG en route met de back-end-VM

    Get-AzEffectiveNetworkSecurityGroup -NetworkInterfaceName nic1 -ResourceGroupName testrgGet-AzEffectiveRouteTable -NetworkInterfaceName nic1 -ResourceGroupName testrg
  4. Controleer de aanwezigheid van aangepaste DNS in het VNet. DNS kan worden gecontroleerd door de details van de VNet-eigenschappen in de uitvoer te bekijken.

    Get-AzVirtualNetwork -Name vnetName -ResourceGroupName rgName DhcpOptions : { "DnsServers": [ "x.x.x.x" ] }
  5. Als deze aanwezig is, moet u ervoor zorgen dat de DNS-server de FQDN van het back-endpoollid correct kan oplossen.

Problemen met standaardstatustest

Oorzaak

502-fouten kunnen ook frequente indicatoren zijn dat de standaardstatustest geen back-end-VM's kan bereiken.

Wanneer een exemplaar van een toepassingsgateway is ingericht, wordt automatisch een standaardstatustest geconfigureerd voor elke BackendAddressPool met behulp van eigenschappen van de BackendHttpSetting. Er is geen gebruikersinvoer vereist om deze test in te stellen. Wanneer een taakverdelingsregel is geconfigureerd, wordt er een koppeling gemaakt tussen een BackendHttpSetting en een BackendAddressPool. Er wordt een standaardtest geconfigureerd voor elk van deze koppelingen en de toepassingsgateway start een periodieke statuscontroleverbinding met elk exemplaar in de BackendAddressPool op de poort die is opgegeven in het element BackendHttpSetting.

De volgende tabel bevat de waarden die zijn gekoppeld aan de standaardstatustest:

TesteigenschapWaardeOmschrijving
Test-URLhttp://127.0.0.1/URL-pad
Interval30Testinterval in seconden
Time-out30Time-out van test in seconden
Drempelwaarde voor beschadigde status3Aantal nieuwe pogingen voor de test. De back-endserver wordt gemarkeerd nadat het aantal opeenvolgende testfouten de drempelwaarde voor beschadigde status heeft bereikt.

Oplossing

  • De hostwaarde van de aanvraag wordt ingesteld op 127.0.0.1. Zorg ervoor dat een standaardsite is geconfigureerd en luistert op 127.0.0.1.
  • Het protocol van de aanvraag wordt bepaald door het protocol BackendHttpSetting.
  • Het URI-pad wordt ingesteld op /.
  • Als BackendHttpSetting een andere poort dan 80 opgeeft, moet de standaardsite worden geconfigureerd om naar die poort te luisteren.
  • De aanroep om protocol://127.0.0.1:port een HTTP-resultaatcode van 200 te retourneren. Deze code moet worden geretourneerd binnen de time-outperiode van 30 seconden.
  • Zorg ervoor dat de geconfigureerde poort is geopend en dat er geen firewallregels of Azure-netwerkbeveiligingsgroepen zijn die binnenkomend of uitgaand verkeer blokkeren op de poort die is geconfigureerd.
  • Als klassieke Azure-VM's of cloudservice worden gebruikt met een FQDN of een openbaar IP-adres, moet u ervoor zorgen dat het bijbehorende eindpunt wordt geopend.
  • Als de VIRTUELE machine is geconfigureerd via Azure Resource Manager en zich buiten het VNet bevindt waar de toepassingsgateway wordt geïmplementeerd, moet een netwerkbeveiligingsgroep worden geconfigureerd om toegang op de gewenste poort toe te staan.

Zie De configuratie van de infrastructuur van Application Gateway voor meer informatie.

Problemen met aangepaste statustest

Oorzaak

Aangepaste statustests bieden extra flexibiliteit voor het standaardgedrag voor testen. Wanneer u aangepaste tests gebruikt, kunt u het testinterval, de URL, het te testen pad en hoeveel mislukte antwoorden moeten worden geaccepteerd voordat u het exemplaar van de back-endpool als beschadigd markeert.

De volgende aanvullende eigenschappen worden toegevoegd:

TesteigenschapBeschrijving
NaamNaam van de test. Deze naam wordt gebruikt om te verwijzen naar de test in de HTTP-instellingen van de back-end.
ProtocolProtocol dat wordt gebruikt om de test te verzenden. De test maakt gebruik van het protocol dat is gedefinieerd in de HTTP-instellingen van de back-end
HostHostnaam voor het verzenden van de test. Alleen van toepassing wanneer meerdere sites zijn geconfigureerd op de toepassingsgateway. Dit verschilt van de hostnaam van de VIRTUELE machine.
PadRelatief pad van de test. Het geldige pad begint met '/'. De test wordt verzonden naar <protocol>://<host>:<poortpad><>
IntervalTestinterval in seconden. Dit is het tijdsinterval tussen twee opeenvolgende tests.
Time-outTime-out van de test in seconden. Als er binnen deze time-outperiode geen geldig antwoord wordt ontvangen, wordt de test gemarkeerd als mislukt.
Drempelwaarde voor beschadigde statusAantal nieuwe pogingen voor de test. De back-endserver wordt gemarkeerd nadat het aantal opeenvolgende testfouten de drempelwaarde voor beschadigde status heeft bereikt.

Oplossing

Controleer of de aangepaste statustest juist is geconfigureerd, zoals wordt weergegeven in de voorgaande tabel. Naast de voorgaande stappen voor probleemoplossing moet u ook het volgende controleren:

  • Zorg ervoor dat de test correct is opgegeven volgens de handleiding.
  • Als de toepassingsgateway is geconfigureerd voor één site, moet standaard de hostnaam worden opgegeven als 127.0.0.1, tenzij anders geconfigureerd in aangepaste test.
  • Zorg ervoor dat een aanroep naar http://< host>:<port><path> een HTTP-resultaatcode van 200 retourneert.
  • Zorg ervoor dat Interval, Time-out en UnhealtyThreshold binnen de acceptabele bereiken vallen.
  • Als u een HTTPS-test gebruikt, moet u ervoor zorgen dat de back-endserver geen SNI vereist door een terugvalcertificaat te configureren op de back-endserver zelf.

Time-out aanvragen

Oorzaak

Wanneer een gebruikersaanvraag wordt ontvangen, past de toepassingsgateway de geconfigureerde regels toe op de aanvraag en stuurt deze door naar een exemplaar van de back-endpool. Er wordt gewacht op een configureerbaar tijdsinterval voor een antwoord van het back-endexemplaren. Dit interval is standaard 20 seconden. Als in Application Gateway V1 de toepassingsgateway in deze interval geen antwoord van de back-endtoepassing ontvangt, krijgt de gebruikersaanvraag een 502-fout. Als in Application Gateway v2 de toepassingsgateway in dit interval geen antwoord van de back-endtoepassing ontvangt, wordt de aanvraag geprobeerd tegen een tweede lid van de back-endpool. Als de tweede aanvraag mislukt, krijgt de gebruikersaanvraag een 504-fout.

Oplossing

Met Application Gateway kunt u deze instelling configureren via de BackendHttpSetting, die vervolgens kan worden toegepast op verschillende pools. Verschillende back-endpools kunnen verschillende BackendHttpSetting hebben en een andere time-out voor aanvragen geconfigureerd.

 New-AzApplicationGatewayBackendHttpSettings -Name 'Setting01' -Port 80 -Protocol Http -CookieBasedAffinity Enabled -RequestTimeout 60

Lege BackendAddressPool

Oorzaak

Als de toepassingsgateway geen VM's of virtuele-machineschaalsets heeft geconfigureerd in de back-endadresgroep, kan er geen klantaanvraag worden gerouteerd en wordt er een ongeldige gatewayfout verzonden.

Oplossing

Zorg ervoor dat de back-endadresgroep niet leeg is. Dit kan via PowerShell, CLI of portal.

Get-AzApplicationGateway -Name "SampleGateway" -ResourceGroupName "ExampleResourceGroup"

De uitvoer van de voorgaande cmdlet moet geenmpty back-endadresgroep bevatten. In het volgende voorbeeld ziet u twee pools die zijn geconfigureerd met een FQDN of een IP-adres voor de back-end-VM's. De inrichtingsstatus van de BackendAddressPool moet geslaagd zijn.

BackendAddressPoolsText:

[{ "BackendAddresses": [{ "ipAddress": "10.0.0.10", "ipAddress": "10.0.0.11" }], "BackendIpConfigurations": [], "ProvisioningState": "Succeeded", "Name": "Pool01", "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", "Id": "/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name>/backendAddressPools/pool01"}, { "BackendAddresses": [{ "Fqdn": "xyx.cloudapp.net", "Fqdn": "abc.cloudapp.net" }], "BackendIpConfigurations": [], "ProvisioningState": "Succeeded", "Name": "Pool02", "Etag": "W/\"00000000-0000-0000-0000-000000000000\"", "Id": "/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name>/backendAddressPools/pool02"}]

Beschadigde exemplaren in BackendAddressPool

Oorzaak

Als alle exemplaren van BackendAddressPool niet in orde zijn, heeft de toepassingsgateway geen back-end waarnaar de gebruikersaanvraag moet worden doorgestuurd. Dit kan ook het geval zijn wanneer back-endinstanties in orde zijn, maar niet de vereiste toepassing hebben geïmplementeerd.

Oplossing

Zorg ervoor dat de exemplaren in orde zijn en dat de toepassing correct is geconfigureerd. Controleer of de back-endinstanties kunnen reageren op een ping vanaf een andere VIRTUELE machine in hetzelfde VNet. Als deze is geconfigureerd met een openbaar eindpunt, moet u ervoor zorgen dat een browseraanvraag voor de webtoepassing kan worden gebruikt.

Upstream SSL-certificaat komt niet overeen

Oorzaak

Het TLS-certificaat dat is geïnstalleerd op back-endservers komt niet overeen met de hostnaam die is ontvangen in de header van de hostaanvraag.

In scenario's waarin End-to-end TLS is ingeschakeld, is een configuratie die wordt bereikt door de juiste 'Back-end HTTP-Instellingen' te bewerken en daar de configuratie van de instelling 'Back-endprotocol' te wijzigen in HTTPS, verplicht om ervoor te zorgen dat de CNAME van het TLS-certificaat dat op back-endservers is geïnstalleerd, overeenkomt met de hostnaam die in de HTTP-hostheaderaanvraag naar de back-end wordt verzonden.

Ter herinnering, het effect van het inschakelen van de back-end HTTP-Instellingen de optie van protocol HTTPS in plaats van HTTP, is dat het tweede deel van de communicatie tussen de exemplaren van de Application Gateway en de back-endservers wordt versleuteld met TLS.

Als gevolg van het feit dat application gateway standaard dezelfde HTTP-hostheader naar de back-end verzendt als ontvangen van de client, moet u ervoor zorgen dat het TLS-certificaat dat op de back-endserver is geïnstalleerd, wordt uitgegeven met een CNAME die overeenkomt met de hostnaam die is ontvangen door die back-endserver in de HTTP-hostheader.Houd er rekening mee dat deze hostnaam, tenzij anders is opgegeven, hetzelfde is als de hostnaam die van de client is ontvangen.

Bijvoorbeeld:

Stel dat u een Application Gateway hebt om de https-aanvragen voor domein-www.contoso.com te verwerken. U kunt het domein contoso.com gedelegeerd aan een openbare Azure DNS-zone en een A DNS-record in die zone die www.contoso.com verwijst naar het openbare IP-adres van de specifieke toepassingsgateway die de aanvragen gaat verwerken.

Op die Application Gateway moet u een listener hebben voor de host www.contoso.com met een regel waarvoor de 'ondersteunde HTTP-instelling' is gedwongen protocol HTTPS te gebruiken (zodat end-to-end TLS wordt gegarandeerd). Dezelfde regel kan een back-endpool hebben geconfigureerd met twee virtuele machines waarop IIS wordt uitgevoerd als webservers.

Zoals we weten dat het inschakelen van HTTPS in de 'Ondersteunde HTTP-instelling' van de regel het tweede deel van de communicatie tussen de Application Gateway-exemplaren en de servers in de back-end maakt om TLS te gebruiken.

Als de back-endservers geen TLS-certificaat hebben uitgegeven voor de CNAME-www.contoso.com of *.contoso.com, mislukt de aanvraag met Serverfout: 502 - Webserver heeft een ongeldig antwoord ontvangen tijdens het fungeren als een gateway of proxyserver omdat het upstream SSL-certificaat (het certificaat dat op de back-endservers is geïnstalleerd) niet overeenkomt met de hostnaam in de hostheader, en daarom mislukt de TLS-onderhandeling.

www.contoso.com --> FRONT-END-IP van APP GW --> Listener met een regel waarmee 'Back-end-HTTP-Instellingen' wordt geconfigureerd voor het gebruik van protocol HTTPS in plaats van HTTP --> Back-endpool -> Webserver (er moet een TLS-certificaat zijn geïnstalleerd voor www.contoso.com)

Oplossing

het is vereist dat de CNAME van het TLS-certificaat dat is geïnstalleerd op de back-endserver, overeenkomt met de hostnaam die is geconfigureerd in de HTTP-back-endinstellingen, anders mislukt het tweede deel van de end-to-end-communicatie tussen de exemplaren van de Application Gateway en de back-end, mislukt met 'Upstream SSL-certificaat komt niet overeen', en wordt een serverfout geretourneerd: 502 - Webserver heeft een ongeldig antwoord ontvangen tijdens het fungeren als een gateway of proxyserver

Volgende stappen

Als het probleem niet wordt opgelost met de voorgaande stappen, opent u een ondersteuningsticket.

Ongeldige gatewayfouten oplossen - Azure-toepassing-gateway (2024)

FAQs

How to resolve 502 Bad Gateway Error in Azure? ›

Check whether any NSG/UDR/Firewall is blocking access to the server. Check if application is running on correct port". I made sure that port 8000 is added to NSG inbound security rule, Load balancer rule and listens to port 8000 on App GW. This VM is pingable but can be accessed from other devices on the same subnet.

How to fix a 502 Bad Gateway error? ›

How Do You Fix The 502 Bad Gateway Error? (9 Possible Solutions)
  1. Refresh The Webpage And Try A Different Browser. ...
  2. Test Using Another Device. ...
  3. Clear Your Browser's Cache. ...
  4. Flush The DNS Cache. ...
  5. Check Your Site's Error Log. ...
  6. Deactivate Your Plugins And Themes. ...
  7. Disable Your CDN Or Firewall. ...
  8. Restart PHP And Increase Your PHP Limits.
Nov 8, 2023

How to fix 504 gateway timeout error in Azure? ›

For example, let's say we are trying to retrieve data for a data grid control, and it takes 30 seconds to process this request. We get a 504-gateway time-out error because the time-out period is 20 seconds. If we increase the time-out period to 40 seconds, the page will load adequately without any problems.

Is 502 Bad Gateway a hack? ›

You can receive this error when visiting a website that gets an invalid response from its host server or experiences other issues, such as server overloads, network problems, and configuration issues. The 502 bad gateway error doesn't mean something is wrong with your device or internet connection.

How do I bypass bad gateway error? ›

How to Fix the 502 Bad Gateway Error
  1. Refresh the Page. Usually, a 502 Bad Gateway Error is temporary, stemming from a sudden traffic surge. ...
  2. Check the Site Status. ...
  3. Clear Your Browser Cache. ...
  4. Try in the Incognito Mode. ...
  5. Flush the DNS Cache. ...
  6. Test on Another Device. ...
  7. Check Error Logs. ...
  8. Check Plugins and Themes.

How do I fix CloudFront 502 error? ›

The failure produces a 502 error. To resolve, confirm that the CloudFront distribution's Protocol setting is set to the correct port for HTTP or HTTPS connections. Note: For ORIGIN_DOMAIN, enter the ID of your origin domain. For ORIGIN_IP, enter the IP address of your origin.

Why does 502 Bad Gateway keep popping up? ›

A 502 bad gateway message indicates that one server got an invalid response from another. In essence, you've connected with some kind of interim device (like an edge server) that should fetch all of the bits you need to load the page. Something about that process went wrong, and the message indicates the problem.

How do I restart 502 Bad Gateway? ›

How do I restart 502 Bad Gateway? You can't directly “restart” a 502 Bad Gateway error yourself. It's usually caused by issues with the website's server or network. However, you can try refreshing the page, checking your internet connection, clearing your browser's cache, or trying again later.

Does 502 Bad Gateway go away on its own? ›

One of the easiest and first things you should try when encountering a 502 bad gateway error is to simply wait a minute or so and reload the page (F5 or Ctrl + F5). It could be that the host or server is simply overloaded and the site will come right back.

Will 504 gateway timeout fix itself? ›

The 504 Gateway error is usually temporary, and different reasons may cause it. Most often than not, the problem is due to a client-end issue like Internet connection troubles.

How do I fix 504 Bad gateway? ›

How to Fix 504 Gateway Timeout Error
  1. Refresh the Page. Refreshing the web page is often the first and simplest step in resolving a 504 Gateway Timeout error. ...
  2. Try a Different Browser. ...
  3. Check the Proxy Server Settings. ...
  4. Disable Your Firewall. ...
  5. Flush DNS. ...
  6. Check Your Website's Error Log. ...
  7. Check Your Website's Plugins. ...
  8. Disable the CDN.
Apr 1, 2024

What is the root cause of 504 gateway timeout? ›

Sometimes, a 504 Gateway Timeout error will show when there's too much website traffic. In such cases, simply refreshing the web page can resolve the problem. Aside from website traffic, overloaded web servers are also the reason for this error.

Is 502 Bad Gateway Temporary? ›

The “502 Bad Gateway” error can also be caused by a temporary connectivity issue originating from your local ISP.

What is 502 Bad Gateway response example? ›

Example. In the example, the client requests a resource and the server responds with a 502 Bad Gateway status code because the server that it attempted to retrieve the resource from returned an invalid HTTP response. GET /news HTTP/1.1 Host: www.example.re.

How do I throw a 502 Bad Gateway? ›

Flush the DNS Cache

Other common causes of 502 Bad Gateway are DNS problems, such as incorrect IP addresses and unresponsive DNS servers. In this case, flushing your DNS cache can be the answer. This method works similarly to clearing your browser's cache. It will remove faulty files from your DNS server.

What is error 502 in Azure API management? ›

After you configure an application gateway, one of the errors that you may see is Server Error: 502 - Web server received an invalid response while acting as a gateway or proxy server. This error may happen for the following main reasons: NSG, UDR, or Custom DNS is blocking access to backend pool members.

What is error 502 on Azure bot? ›

This error indicates that either the bot returned an error or the request timed out. For more information about errors that your bot generates, go to the bot's dashboard within the Azure Portal and click the "Issues" link for the affected channel.

How do I troubleshoot an Azure application gateway? ›

Analyze Application Gateway logs
  1. In the Azure portal, find your resource and then select Diagnostic setting. ...
  2. To start to collect data, select Add diagnostic setting.
  3. The Diagnostic setting page provides the settings for the diagnostic logs. ...
  4. Confirm the settings and then select Save.

What is the response status of 502 Bad Gateway? ›

The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.

Top Articles
Latest Posts
Article information

Author: Fredrick Kertzmann

Last Updated:

Views: 6344

Rating: 4.6 / 5 (46 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Fredrick Kertzmann

Birthday: 2000-04-29

Address: Apt. 203 613 Huels Gateway, Ralphtown, LA 40204

Phone: +2135150832870

Job: Regional Design Producer

Hobby: Nordic skating, Lacemaking, Mountain biking, Rowing, Gardening, Water sports, role-playing games

Introduction: My name is Fredrick Kertzmann, I am a gleaming, encouraging, inexpensive, thankful, tender, quaint, precious person who loves writing and wants to share my knowledge and understanding with you.