Partilhar via


Resolver erros HTTP de "502 gateway incorreto" e "serviço 503 indisponível" no Serviço de Aplicações do Azure

"502 gateway incorreto" e "serviço 503 indisponível" são erros comuns na sua aplicação alojada no Serviço de Aplicações do Azure. Este artigo ajuda-o a resolver estes erros.

Se precisar de mais ajuda em qualquer altura deste artigo, pode contactar os especialistas do Azure nos fóruns do MSDN Azure e do Stack Overflow. Em alternativa, também pode arquivar um incidente de suporte do Azure. Aceda ao site de Suporte do Azure e clique em Obter Suporte.

Sintoma

Quando navega para a aplicação, devolve um erro HTTP "502 Gateway Incorreto" ou um erro HTTP "Serviço 503 Indisponível".

Causa

Este problema é frequentemente causado por problemas ao nível da aplicação, tais como:

  • pedidos que demoram muito tempo
  • aplicação com memória/CPU elevada
  • falha da aplicação devido a uma exceção.

Passos de resolução de problemas para resolver erros "502 gateway incorreto" e "serviço 503 indisponível"

A resolução de problemas pode ser dividida em três tarefas distintas, por ordem sequencial:

  1. Observar e monitorizar o comportamento da aplicação
  2. Recolher dados
  3. Mitigar o problema

Serviço de Aplicações dá-lhe várias opções em cada passo.

1. Observar e monitorizar o comportamento da aplicação

Controlar Estado de funcionamento dos serviços

O Microsoft Azure divulga cada vez que existe uma interrupção do serviço ou degradação do desempenho. Pode controlar o estado de funcionamento do serviço no Portal do Azure. Para obter mais informações, veja Controlar o estado de funcionamento do serviço.

Monitorizar a sua aplicação

Esta opção permite-lhe saber se a sua aplicação está a ter problemas. No painel da aplicação, clique no mosaico Pedidos e erros . O painel Métrica irá mostrar-lhe todas as métricas que pode adicionar.

Algumas das métricas que poderá querer monitorizar para a sua aplicação são

  • Conjunto de trabalho de memória médio
  • Tempo médio de resposta
  • Tempo de CPU
  • Conjunto de trabalho de memória
  • Pedidos

monitorizar a aplicação para resolver erros HTTP do gateway 502 incorreto e do serviço 503 indisponível

Para obter mais informações, consulte:

2. Recolher dados

Utilizar a ferramenta de diagnóstico

Serviço de Aplicações fornece uma experiência inteligente e interativa para ajudá-lo a resolver problemas da sua aplicação sem necessidade de configuração. Quando se deparar com problemas com a sua aplicação, a ferramenta de diagnóstico irá indicar o que há de errado em guiá-lo para as informações certas para resolver o problema de forma mais fácil e rápida.

Para aceder Serviço de Aplicações diagnósticos, navegue para a sua aplicação Serviço de Aplicações ou Ambiente do Serviço de Aplicações no portal do Azure. No painel de navegação esquerdo, clique em Diagnosticar e resolver problemas.

Utilizar a Consola de Depuração kudu

Serviço de Aplicações inclui uma consola de depuração que pode utilizar para depurar, explorar, carregar ficheiros, bem como pontos finais JSON para obter informações sobre o seu ambiente. Isto chama-se Consola kudu ou Dashboard do SCM para a sua aplicação.

Pode aceder a este dashboard acedendo à ligação https://< O nome> da sua aplicação.scm.azurewebsites.net/.

Algumas das coisas que o Kudu fornece são:

  • definições de ambiente para a sua aplicação
  • fluxo de registos
  • captura de diagnóstico
  • consola de depuração na qual pode executar cmdlets do PowerShell e comandos básicos dos DOS.

Outra funcionalidade útil do Kudu é que, caso a sua aplicação esteja a lançar exceções de primeira oportunidade, pode utilizar o Kudu e a ferramenta SysInternals Procdump para criar capturas de memória. Estas capturas de memória são instantâneos do processo e, muitas vezes, podem ajudá-lo a resolver problemas mais complicados com a sua aplicação.

Para obter mais informações sobre as funcionalidades disponíveis no Kudu, consulte Ferramentas online de Sites do Azure que deve conhecer.

3. Mitigar o problema

Dimensionar a aplicação

No Serviço de Aplicações do Azure, para aumentar o desempenho e o débito, pode ajustar a escala em que está a executar a sua aplicação. Aumentar verticalmente uma aplicação envolve duas ações relacionadas: alterar o seu plano de Serviço de Aplicações para um escalão de preço mais elevado e configurar determinadas definições depois de mudar para o escalão de preço mais elevado.

Para obter mais informações sobre o dimensionamento, veja Dimensionar uma aplicação no Serviço de Aplicações do Azure.

Além disso, pode optar por executar a sua aplicação em mais do que uma instância. Isto não só lhe fornece mais capacidade de processamento, como também lhe dá alguma tolerância a falhas. Se o processo ficar inativo numa instância, a outra instância continuará a fornecer pedidos.

Pode definir o dimensionamento como Manual ou Automático.

Utilizar o AutoHeal

O AutoHeal recicla o processo de trabalho da sua aplicação com base nas definições que escolher (como alterações de configuração, pedidos, limites baseados na memória ou o tempo necessário para executar um pedido). Na maioria das vezes, reciclar o processo é a forma mais rápida de recuperar de um problema. Embora possa sempre reiniciar a aplicação diretamente no portal do Azure, o AutoHeal irá fazê-lo automaticamente por si. Tudo o que precisa de fazer é adicionar alguns acionadores na raiz web.config da sua aplicação. Tenha em atenção que estas definições funcionariam da mesma forma, mesmo que a sua aplicação não seja .NET.

Para obter mais informações, veja Recodução Automática de Web Sites do Azure.

Reiniciar a aplicação

Esta é, muitas vezes, a forma mais simples de recuperar de problemas únicos. No portal do Azure, no painel da sua aplicação, tem as opções para parar ou reiniciar a sua aplicação.

reiniciar a aplicação para resolver erros HTTP do gateway 502 incorreto e do serviço 503 indisponível

Também pode gerir a sua aplicação com Azure PowerShell. Para obter mais informações, veja Using Azure PowerShell with Azure Resource Manager (Utilizar o Azure PowerShell com o Azure Resource Manager).