Serviço 503 indisponível - Servidor de back-end

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Vídeos

Assista ao vídeo a seguir para saber mais sobre como resolver erros de serviço indisponível 503.

Vídeo Descrição
Erro 503 de serviço indisponível do servidor de back-end Saiba mais sobre o seguinte:
  • Introdução ao erro 503 de serviço indisponível no Apigee Edge
  • A solução de problemas e a resolução de um serviço 503 em tempo real indisponível de Servidor de back-end

Sintoma

O aplicativo cliente recebe um status de resposta HTTP 503 com a mensagem Serviço indisponível logo após uma chamada de proxy de API.

Mensagens de erro

Você pode encontrar uma das seguintes mensagens de erro:

HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity

Talvez você também receba uma mensagem de erro como esta: 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 a implementação do servidor de back-end.

Causas

O código de status HTTP 503 significa que o servidor não pode lidar com o evento solicitações. Geralmente, esse erro ocorre porque o servidor está muito ocupado ou temporariamente fora do ar para manutenção.

As possíveis causas para a resposta 503 Service Unavailable são:

Causa Descrição Quem pode executar as etapas de solução de problemas
Servidor sobrecarregado O servidor de back-end está sobrecarregado ou ultrapassado de capacidade e não consegue lidar solicitações recebidas de clientes. Usuários de nuvem pública e privada de borda
Servidor em manutenção O servidor de back-end pode estar temporariamente em manutenção. Usuários de nuvem pública e privada de borda

Causa: servidor/servidor sobrecarregado em manutenção

No Apigee Edge, o erro 503 de 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 para fins de manutenção.

Diagnóstico

Para diagnosticar o erro, você pode usar qualquer 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

  1. Ative a sessão de trace, e faça a chamada de API para reproduzir o problema: 503 Serviço indisponível.
  2. Selecione uma das solicitações com falha e examine o trace.
  3. Navegue pelas várias fases do trace e localize onde a falha ocorreu.
  4. Se você achar 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 de serviço indisponível recebida do servidor de destino:

  5. Clique na fase Resposta recebida do servidor de destino e siga as Cabeçalhos de resposta e as seções "Conteúdo da resposta" para verificar se há informações úteis:
    • Os cabeçalhos de resposta podem conter o cabeçalho Servidor, que indica de onde a resposta de erro foi enviada.
    • O Conteúdo da Resposta pode conter informações adicionais sobre o motivo o servidor de destino enviou o código de resposta 503.
    .
  6. Confirme se o erro 503 está vindo do servidor de destino verificando os valores de X-Apigee-fault-source e X-Apigee-fault-code no AX (Dados de análise registrados) Fase no rastreamento usando as etapas abaixo:
    1. Clique na fase AX (Analytics Data Recorded), conforme mostrado na captura de tela abaixo:
    2. Role para baixo até a seção "Response Headers" em "Detalhes da fase" e determine os valores. de X-Apigee-fault-code e X-Apigee-fault-source, conforme mostrado abaixo:
    3. Se os valores de X-Apigee-fault-source e X-Apigee-fault-code corresponderem aos valores mostrados na tabela abaixo, você pode confirmar que o erro 503 está sendo servidor de destino:
      Cabeçalhos de resposta Valor
      X-Apigee-fault-source target
      X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  7. Verifique se você está usando o encadeamento de proxy, ou seja, se o servidor de destino/endpoint de destino é invocar outro proxy na Apigee. Para determinar isso:
    1. Navegue de volta 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.
    2. Se o alias de host do servidor de destino apontar para um alias de host virtual, ele encadeamento de proxy. Nesse caso, é necessário repetir todas as etapas acima para o cluster encadeado. proxy até determinar o que está realmente causando o erro 503 Serviço Indisponível. Nesses casos, o erro "503 Serviço indisponível" pode acontecer em outros proxies encadeados em outro que podem ser diagnosticados com neste manual.
    3. Se o alias de host do servidor de destino apontar para seu servidor de back-end, vá para Resolução.

Registros de acesso do NGINX

Também é possível consultar os registros de código do NGINX para determinar se o código de status 503 foi enviado. pelo servidor de back-end. Isso será muito útil se o problema já tiver ocorrido no passado. ou se o problema for intermitente e você não conseguir capturar o rastro na IU. Siga as etapas a seguir para determinar essas informações dos registros de acesso do NGINX:

  1. Verifique os registros de acesso do NGINX.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  2. Procurar erros 503 no proxy de API específico durante um período específico (se o problema tiver acontecido no passado) ou por solicitações que ainda apresentam falha com 503.
  3. Se houver algum erro 503, verifique se ele está vindo do servidor de back-end. Se os valores de X-Apigee-fault-source e X-Apigee-fault-code corresponderem ao valores mostrados na tabela abaixo, o erro 503 é proveniente do servidor de back-end:
    Cabeçalhos de resposta Valor
    X-Apigee-fault-source target
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode

    Este é um exemplo de entrada que mostra o erro 503 causado pelo servidor de destino:

  4. Revise 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, você precisa repetir todas as etapas acima para o proxy encadeado até você determina o que está realmente causando o erro 503 Serviço indisponível. Nesses casos, 503 Serviço indisponível pode acontecer em outros proxies encadeados em outros estágios também, que podem ser diagnosticadas neste playbook.
  5. Se você confirmar que não está usando o encadeamento de proxy e o erro 503 estiver vindo do seu servidor de back-end e vá para 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 o mesmo Resposta 503 de serviço indisponível conforme recebida quando a solicitação foi feita pelo Apigee Edge.

  1. Verifique se você tem todos os cabeçalhos, parâmetros de consulta e credenciais necessários que precisam ser passados para o servidor de back-end como parte da solicitação.
  2. Se o serviço de back-end estiver acessível publicamente, use o comando curl. Postman ou qualquer outro cliente REST e invocar a API do servidor de back-end diretamente.
  3. Se o servidor de back-end só puder ser acessado pelos processadores de mensagens, você poderá usar o método comando curl, Postman ou qualquer outro cliente REST e invoca diretamente a API do servidor de back-end do processador de mensagens.
  4. Verifique se o serviço de back-end está realmente retornando o erro 503 Serviço indisponível.

Resolução

Se você confirmar que o erro 503 está vindo do servidor de back-end, poderá fazer a seguir para resolver o problema:

  • Se o problema for causado porque o servidor de back-end está inativo para manutenção, é possível deixar 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 você 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 o monitoramento de APIs

O API Monitoring permite isolar áreas problemáticas para diagnosticar erros, desempenho problemas de latência e latência e a origem deles, como apps para desenvolvedores, proxies de API, destinos de back-end ou a plataforma de API.

Usar uma amostra cenário que demonstra como resolver problemas 5xx com suas APIs usando o monitoramento de APIs. Por exemplo, talvez você queira configurar um alerta para ser notificado quando o número de falhas Messaging.adaptors.http.flow.ErrorResponseCode excedem um determinado limite.

É necessário coletar informações de diagnóstico

Se o problema persistir mesmo depois de seguir as instruções acima, reúna as seguindo as informações de diagnóstico e entre em contato com Suporte da Apigee.

Se você é usuário da nuvem pública, forneça as seguintes informações:

  • Nome da organização
  • Nome do ambiente
  • Nome do proxy da API
  • Completar o comando curl para reproduzir o erro 503
  • Arquivo de rastreamento contendo as solicitações com o erro 503 Serviço indisponível
  • Se os erros 503 não estiverem ocorrendo atualmente, forneça o período com o fuso horário quando os erros 503 ocorreram.

Se você é usuário da nuvem privada, forneça as seguintes informações:

  • Mensagem de erro completa observada para as solicitações com falha.
  • Organização, nome do ambiente e nome do proxy da API para os quais você está observando os erros 503.
  • o pacote do proxy de API.
  • Arquivo de rastreamento que contém as solicitações com o 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.