Solucionar erros HTTP de "502 bad gateway" e "503 service unavailable" no Serviço de Aplicativo do Azure
"502 bad gateway" e "503 service unavailable" são erros comuns em seu aplicativo hospedado no Serviço de Aplicativo do Azure. Este artigo ajuda você a solucionar esses erros.
Se precisar de mais ajuda em qualquer ponto deste artigo, entre em contato com os especialistas do Azure nos fóruns MSDN Azure e Stack Overflow. Como alternativa, você também pode registrar um incidente de suporte do Azure. Vá para o site de Suporte do Azure e clique em Obter Suporte.
Sintoma
Quando você navega para o aplicativo, ele retorna um erro HTTP "502 Bad Gateway" ou um erro HTTP "503 Service Unavailable".
Motivo
Esse problema geralmente é causado por problemas no nível do aplicativo, como:
- Pedidos muito demorados.
- A aplicação utiliza memória/CPU elevadas.
- Falha da aplicação devido a uma exceção.
Etapas de solução de problemas para resolver erros "502 bad gateway" e "503 service unavailable"
A solução de problemas pode ser dividida em três tarefas distintas, em ordem sequencial:
O Serviço de Aplicativo oferece várias opções em cada etapa.
1. Observe e monitore o comportamento do aplicativo
Rastreie a integridade do serviço
O Microsoft Azure publica sempre que há uma interrupção de serviço ou degradação de desempenho. Você pode acompanhar a integridade do serviço no Portal do Azure. Para obter mais informações, consulte Controlar a integridade do serviço.
Monitore seu aplicativo
Esta opção permite-lhe descobrir se a sua aplicação está a ter problemas. Na folha do seu aplicativo, clique no bloco Solicitações e erros . A folha Métrica mostrará todas as métricas que você pode adicionar.
Algumas das métricas que você pode querer monitorar para seu aplicativo 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 do
Para obter mais informações, consulte:
2. Recolha de dados
Use a ferramenta de diagnóstico
O Serviço de Aplicativo fornece uma experiência inteligente e interativa para ajudá-lo a solucionar problemas do seu aplicativo sem a necessidade de configuração. Quando você tiver problemas com seu aplicativo, a ferramenta de diagnóstico apontará o que está errado para guiá-lo para as informações certas para solucionar e resolver o problema com mais facilidade e rapidez.
Para acessar o diagnóstico do Serviço de Aplicativo, navegue até seu aplicativo do Serviço de Aplicativo ou Ambiente do Serviço de Aplicativo no portal do Azure. Na navegação à esquerda, clique em Diagnosticar e resolver problemas.
Use o Kudu Debug Console
O Serviço de Aplicativo vem com um console de depuração que você pode usar para depurar, explorar, carregar arquivos, bem como pontos de extremidade JSON para obter informações sobre seu ambiente. Isso é chamado de Console Kudu ou Painel SCM para seu aplicativo.
Você pode acessar esse painel acessando o link https:// Nome do aplicativo.scm.azurewebsites.net/><.
Algumas das coisas que Kudu fornece são:
- Configurações de ambiente para seu aplicativo
- fluxo de log
- despejo de diagnóstico
- console de depuração no qual você pode executar cmdlets do PowerShell e comandos básicos do DOS.
Outro recurso útil do Kudu é que, caso seu aplicativo esteja lançando exceções de primeira chance, você pode usar o Kudu e a ferramenta SysInternals Procdump para criar despejos de memória. Esses despejos de memória são instantâneos do processo e muitas vezes podem ajudá-lo a solucionar problemas mais complicados com seu aplicativo.
Para obter mais informações sobre os recursos disponíveis no Kudu, consulte Ferramentas online dos Sites do Azure que você deve conhecer.
3. Atenuar o problema
Dimensione a aplicação
No Serviço de Aplicativo do Azure, para aumentar o desempenho e a taxa de transferência, você pode ajustar a escala na qual está executando seu aplicativo. A expansão de um aplicativo envolve duas ações relacionadas: alterar seu plano do Serviço de Aplicativo para um nível de preço mais alto e definir determinadas configurações depois que você mudar para o nível de preço mais alto.
Para obter mais informações sobre dimensionamento, consulte Dimensionar um aplicativo no Serviço de Aplicativo do Azure.
Além disso, você pode optar por executar seu aplicativo em mais de uma instância. Isso não só fornece mais capacidade de processamento, mas também lhe dá alguma tolerância a falhas. Se o processo ficar inativo em uma instância, a outra ainda continuará atendendo solicitações.
Você pode definir o dimensionamento como Manual ou Automático.
Utilize a Autorrecuperação
O AutoHeal recicla o processo de trabalho para seu aplicativo com base nas configurações escolhidas (como alterações de configuração, solicitações, limites baseados em memória ou o tempo necessário para executar uma solicitação). Na maioria das vezes, reciclar o processo é a maneira mais rápida de se recuperar de um problema. Embora você sempre possa reiniciar o aplicativo diretamente no Portal do Azure, o AutoHeal fará isso automaticamente para você. Tudo o que você precisa fazer é adicionar alguns gatilhos no web.config raiz do seu aplicativo. Observe que essas configurações funcionariam da mesma maneira, mesmo que seu aplicativo não seja .NET.
Para obter mais informações, consulte Auto-Healing Azure Web Sites.
Reinicie a aplicação
Esta é muitas vezes a maneira mais simples de se recuperar de problemas únicos. No Portal do Azure, na folha do seu aplicativo, você tem as opções para parar ou reiniciar seu aplicativo.
Você também pode gerenciar seu aplicativo usando o Azure PowerShell. Para obter mais informações, veja Using Azure PowerShell with Azure Resource Manager (Utilizar o Azure PowerShell com o Azure Resource Manager).