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:
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
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.
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).