Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. info
Vídeos
Assista o vídeo a seguir para saber mais sobre como resolver erros 503: Serviço indisponível.
| Vídeo | Descrição |
|---|---|
| Erro 503: Serviço indisponível do servidor de back-end | Saiba mais sobre:
|
Sintoma
O aplicativo cliente recebe um status de resposta HTTP 503 com a mensagem Serviço indisponível após uma chamada de proxy de API.
Mensagens de erro
Você pode ver uma das seguintes mensagens de erro:
HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
Você também pode ver uma mensagem de erro como a seguinte na resposta HTTP:
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Observação:o código de resposta e a mensagem de erro acima são apenas exemplos. Em alguns casos, você pode receber apenas o código de resposta de erro sem nenhuma mensagem de erro. O formato e o conteúdo do código de resposta de erro e da mensagem de erro podem variar dependendo da implementação do servidor de back-end.
Causas
O código de status HTTP 503 significa que o servidor não pode processar as solicitações recebidas no momento. Normalmente, esse erro ocorre porque o servidor está muito ocupado ou está temporariamente inativo para manutenção.
As possíveis causas para a resposta 503: Serviço indisponível são:
| Causa | Descrição | Quem pode realizar as etapas de solução de problemas |
|---|---|---|
| Servidor sobrecarregado | O servidor de back-end está sobrecarregado ou além da capacidade e não pode processar novas solicitações de clientes. | Usuários da nuvem pública e privada do Edge |
| Servidor em manutenção | O servidor de back-end pode estar em manutenção temporariamente. | Usuários da nuvem pública e privada do Edge |
Causa: servidor sobrecarregado/servidor em manutenção
No Apigee Edge, o erro 503: Serviço indisponível pode ser retornado de um servidor de back-end em uma das seguintes circunstâncias:
- Um servidor de back-end está sobrecarregado/ocupado e não pode processar novas solicitações.
- O servidor de back-end está inativo por um período temporário devido à manutenção.
Diagnóstico
Para diagnosticar o erro, use um dos três métodos a seguir:
- Ferramenta Trace
- Registros de acesso do NGINX
- Chamada direta para o servidor de back-end
Clique nas guias abaixo para saber mais sobre cada método.
Ferramenta Trace
- Ative a sessão de rastreamento e faça a chamada de API para reproduzir o problema: 503: Serviço indisponível.
- Selecione uma das solicitações com falha e examine o rastreamento.
- Navegue por várias fases do rastreamento e localize onde a falha ocorreu.
- Se você descobrir que o erro 503 é retornado como uma resposta do servidor de destino,
a causa do erro 503 é o servidor de destino.
Confira um exemplo de captura de tela de rastreamento mostrando a resposta 503: Serviço indisponível recebida do servidor de destino:
- Clique na fase Resposta recebida do servidor de destino e acesse as seções
"Cabeçalhos de resposta" e "Conteúdo da resposta" para verificar se elas têm informações úteis:
- Os cabeçalhos de resposta podem conter o cabeçalho do servidor, que indica onde a resposta de erro foi enviada.
- O conteúdo da resposta pode conter informações adicionais sobre por que o servidor de destino enviou o código de resposta 503.
- Confirme se o erro 503 está vindo do servidor de destino verificando
os valores de X-Apigee-fault-source e X-Apigee-fault-code na fase AX
(dados de análise registrados) no rastreamento usando as etapas abaixo:
- Clique na fase AX (dados de análise registrados), conforme mostrado na captura de tela abaixo:

- Role para baixo os detalhes da fase até a seção "Cabeçalhos de resposta" e determine os valores
de X-Apigee-fault-code e X-Apigee-fault-source , conforme mostrado abaixo:

- Se os valores de X-Apigee-fault-source e X-Apigee-fault-code corresponderem aos valores
mostrados na tabela abaixo, você poderá confirmar que o erro 503 está vindo do
servidor de destino:
Cabeçalhos de resposta Valor X-Apigee-fault-source destino X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
- Clique na fase AX (dados de análise registrados), conforme mostrado na captura de tela abaixo:
- Verifique se você está usando o encadeamento de proxy, ou seja, se o servidor de destino/endpoint de destino está
invocando outro proxy na Apigee. Para determinar isso:
- Volte para a fase Solicitação enviada ao servidor de destino e clique no botão Mostrar Curl e determine o alias do host do servidor de destino.
- Se o alias do host do servidor de destino estiver apontando para um alias de host virtual, ele será o encadeamento de proxy. Nesse caso, repita todas as etapas acima para o proxy encadeado até determinar o que está causando o erro 503: Serviço indisponível. Nesses casos, o erro 503: Serviço indisponível também pode ocorrer em outros proxies encadeados em outras fases, que podem ser diagnosticados usando este manual.
- Se o alias do host do servidor de destino apontar para o servidor de back-end, acesse Resolução.
Registros de acesso do NGINX
Você também pode consultar os registros de acesso do NGINX para determinar se o código de status 503 foi enviado pelo servidor de back-end. Isso é especialmente útil se o problema tiver ocorrido no passado ou se o problema é intermitente e você não consegue capturar o rastreamento na interface. Siga as etapas abaixo para determinar essas informações nos registros de acesso do NGINX:
- Verifique os registros de acesso do NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Procure erros 503 para o proxy de API específico durante um período específico (se o problema ocorreu no passado) ou para solicitações que ainda estão falhando com 503.
- Se houver erros 503, verifique se o erro está vindo do servidor de back-end.
Se os valores de X-Apigee-fault-source e X-Apigee-fault-code corresponderem aos
valores mostrados
na tabela abaixo, o erro 503 estará vindo do servidor de back-end:
Cabeçalhos de resposta Valor X-Apigee-fault-source destino X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode Confira um exemplo de entrada mostrando o erro 503 causado pelo servidor de destino:
- Analise o proxy de API específico e verifique se você está usando o encadeamento de proxy, ou seja, se o servidor de destino/endpoint de destino não está invocando outro proxy na Apigee. Se você estiver usando encadeamento de proxy, repita todas as etapas acima para o proxy encadeado até determinar o que está causando o erro 503: Serviço indisponível. Nesses casos, o erro 503: Serviço indisponível também pode ocorrer em outros proxies encadeados em outras fases, que podem ser diagnosticados usando este manual.
- Se você confirmar que não está usando o encadeamento de proxy e o erro 503 está vindo do seu servidor de back-end, acesse Resolução.
Chamada para o servidor de back-end
Você pode fazer uma chamada direta para o servidor de back-end e verificar se está recebendo a mesma resposta 503: Serviço indisponível recebida quando a solicitação foi feita pelo Apigee Edge.
- Verifique se você tem todos os cabeçalhos, parâmetros de consulta e credenciais necessários que precisam ser transmitidos ao servidor de back-end como parte da solicitação.
- Se o serviço de back-end for acessível publicamente, você poderá usar o comando curl, o Postman ou qualquer outro cliente REST e invocar a API do servidor de back-end diretamente.
- Se o servidor de back-end só puder ser acessado pelos processadores de mensagens, você poderá usar o comando curl, o Postman ou qualquer outro cliente REST e invocar a API do servidor de back-end diretamente do processador de mensagens.
- Verifique se o serviço de back-end está retornando o erro 503: Serviço indisponível.
Resolução
Se você determinar que o erro 503 está vindo do servidor de back-end, faça o seguinte para resolver o problema:
- Se o problema for causado porque o servidor de back-end está inativo para manutenção, você poderá colocar o servidor de back-end on-line após o período de manutenção.
- Se o problema for causado porque o servidor de back-end está sobrecarregado, então corrija o problema se tiver acesso ao servidor de back-end. Caso contrário, talvez seja necessário trabalhar com a equipe do servidor de back-end para corrigir o problema.
Diagnosticar problemas usando a API Monitoring
A API Monitoring permite isolar áreas problemáticas rapidamente para diagnosticar problemas de erro, desempenho, e latência e a origem delas, como aplicativos de desenvolvedor, proxies de API, destinos de back-end, ou a plataforma de API.
Siga um cenário de exemplo que demonstra como solucionar problemas 5xx com suas APIs usando a API Monitoring. Por exemplo, você pode configurar um alerta para ser notificado quando o número de falhas de messaging.adaptors.http.flow.ErrorResponseCode exceder um limite específico.
É necessário coletar informações de diagnóstico
Se o problema persistir mesmo depois de seguir as instruções acima, reúna as informações de diagnóstico a seguir e entre em contato com o Suporte da Apigee.
Se você for um usuário da nuvem pública, forneça as seguintes informações:
- Nome da organização
- Nome do ambiente
- Nome do proxy de API
- Comando curl completo para reproduzir o erro 503
- Arquivo de rastreamento contendo as solicitações com erro 503: Serviço indisponível
- Se os erros 503 não estiverem ocorrendo no momento, forneça o período com as informações de fuso horário em que os erros 503 ocorreram no passado.
Se você for um usuário de nuvem privada, forneça as seguintes informações:
- Mensagem de erro completa observada para as solicitações com falha.
- Nome da organização, do ambiente e do proxy de API para o qual você está observando erros 503.
- Pacote de proxy de API.
- Arquivo de rastreamento contendo as solicitações com erro 503: Serviço indisponível.
- Registros de acesso do NGINX.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- Registros do processador de mensagens.
/opt/apigee/var/log/edge-message-processor/logs/system.log
- O período com as informações de fuso horário em que os erros 503 ocorreram.