503 Service Available - Backend Server

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Videos

Mira el siguiente video para obtener más información sobre cómo resolver los errores 503 de servicio no disponible.

Video Descripción
Error 503 de servicio no disponible del servidor de backend Obtén más información acerca de los siguientes temas:
  • Introducción a 503 Error de servicio no disponible en Apigee Edge
  • Solución de problemas y resolución de un servicio 503 no disponible en tiempo real desde Servidor backend

Síntoma

La aplicación cliente recibe un estado de respuesta HTTP 503 con el mensaje Servicio no disponible junto a una llamada de proxy de API.

Mensajes de error

Puedes ver uno de los siguientes mensajes de error:

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

Es posible que también veas un mensaje de error como el siguiente en la respuesta HTTP:

The server is temporarily unable to service your request due to
maintenance downtime or capacity problems. Please try again later.

Nota: El código de respuesta y el mensaje de error anteriores son solo ejemplos. En algunos casos, es posible que solo recibas el código de respuesta de error sin ningún mensaje de error. El formato y el contenido del código de respuesta de error y del mensaje de error pueden variar según la implementación del servidor de backend.

Causas

El código de estado HTTP 503 indica que, en este momento, el servidor no puede procesar el tráfico solicitudes. Este error suele ocurrir porque el servidor está demasiado ocupado o temporalmente fuera de servicio por mantenimiento.

Las posibles causas de la respuesta 503 Service Unavailable son las siguientes:

Causa Descripción Quién puede realizar los pasos para solucionar problemas
Servidor sobrecargado El servidor de backend está sobrecargado o supera su capacidad y no puede controlar ninguna las solicitudes entrantes de clientes. Usuarios perimetrales de nubes públicas y privadas
Servidor en mantenimiento Es posible que el servidor de backend esté en mantenimiento temporalmente. Usuarios perimetrales de nubes públicas y privadas

Causa: servidor o servidor sobrecargado en mantenimiento

En Apigee Edge, el error 503 de servicio no disponible se puede mostrar desde un servidor de backend en cualquiera de las siguientes circunstancias:

  • Un servidor de backend está sobrecargado u ocupado y no puede manejar ninguna solicitud nueva.
  • El servidor de backend está inactivo durante un período temporal debido a tareas de mantenimiento.

Diagnóstico

Para diagnosticar el error, puedes usar cualquiera de los tres métodos siguientes:

  • Herramienta de seguimiento
  • Registros de acceso de NGINX
  • Llamada directa al servidor de backend

Haz clic en las pestañas a continuación para obtener información sobre cada método.

Herramienta de seguimiento

  1. Habilita la sesión de seguimiento. y realice la llamada a la API para reproducir el problema - 503 Service Unavailable.
  2. Selecciona una de las solicitudes fallidas y examina el seguimiento.
  3. Navega por las diferentes fases del seguimiento y localiza dónde ocurrió la falla.
  4. Si notas que el error 503 se devuelve como respuesta del servidor de destino, la causa del error 503 es el servidor de destino.

    A continuación, se incluye una captura de pantalla de seguimiento de ejemplo en la que se muestra la respuesta 503 Servicio no disponible recibida desde el servidor de destino:

  5. Haz clic en la fase Se recibió la respuesta del servidor de destino y completa Las secciones Encabezados de respuesta y Contenido de la respuesta para ver si tienen información útil:
    • Los encabezados de respuesta pueden contener el encabezado del servidor, que indica desde dónde se envió la respuesta de error.
    • El Contenido de la Respuesta puede contener información adicional sobre el motivo el servidor de destino envió el código de respuesta 503.
  6. Para confirmar que el error 503 proviene del servidor de destino, revisa los valores de X-Apigee-fault-source y X-Apigee-fault-code en el AX (Datos de Analytics registrados) Fase del seguimiento mediante los pasos que se indican a continuación:
    1. Haz clic en la fase AX (Analytics Data Recorded), como se muestra en la siguiente captura de pantalla:
    2. Desplácese hacia abajo por la sección Detalles de la fase hasta la sección Encabezados de la respuesta y determine los valores de X-Apigee-fault-code y X-Apigee-fault-source como se muestra a continuación:
    3. Si los valores de X-Apigee-fault-source y X-Apigee-fault-code coinciden con los valores que se muestra en la siguiente tabla, puedes confirmar que el error 503 proviene del servidor de destino:
      Encabezados de respuesta Valor
      X-Apigee-fault-source objetivo
      X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  7. Verifica si usas encadenamiento de proxy, es decir, si el servidor o extremo de destino es invocar a otro proxy en Apigee. Para determinarlo:
    1. Regresa a la fase Solicitud enviada al servidor de destino. Haz clic en el botón Show Curl y determina el alias del host del servidor de destino.
    2. Si el alias del host del servidor de destino apunta a un alias de host virtual, es encadenamiento de proxy. En este caso, debes repetir todos los pasos anteriores para el hasta que determines qué está causando el error 503 Servicio no disponible. En estos casos, el estado 503 Servicio no disponible puede ocurrir en otros proxies encadenados a otro que pueden diagnosticarse usando esta guía.
    3. Si el alias del host del servidor de destino apunta a tu servidor de backend, dirígete a Resolución.

Registros de acceso de NGINX

También puedes consultar los registros lccess de NGINX para determinar si el código de estado 503 se envió. por el servidor de backend. Esto es particularmente útil si el problema ocurrió en el pasado. o si el problema es intermitente y no puedes capturar el registro en la IU. Sigue estos pasos para determinar esta información a partir de los registros de acceso de NGINX:

  1. Verifica los registros de acceso de NGINX.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  2. Buscar errores 503 para el proxy de API específico durante un período específico (si el problema ocurrió en el pasado) o de las solicitudes que aún fallan con 503.
  3. Si hay errores 503, verifica si el error proviene del servidor backend. Si los valores de X-Apigee-fault-source y X-Apigee-fault-code coinciden con valores mostrados En la tabla siguiente, el error 503 proviene del servidor backend:
    Encabezados de respuesta Valor
    X-Apigee-fault-source objetivo
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode

    Esta es una entrada de ejemplo en la que se muestra el error 503 que causó el servidor de destino:

  4. Revisa el proxy de API específico y asegúrate de que lo estás usando. encadenamiento de proxy, p.ej., si los el servidor o extremo de destino no invoca otro proxy en Apigee. Si utilizas encadenamiento de proxy, debes repetir todos los pasos anteriores para el proxy en cadena determinas qué es lo que causa el error 503 Servicio no disponible. En estos casos, 503 Servicio no disponible también puede ocurrir en otros proxies encadenados en otras etapas, que puedes diagnosticar con esta guía.
  5. Si confirmas que no estás usando el encadenamiento de proxy y que el error 503 proviene de tu de backend, luego ve a Resolución.

Llamar al servidor de backend

Puedes realizar una llamada directa al servidor de backend y verificar que obtienes la misma 503 Respuesta de servicio no disponible tal como se recibió cuando se realizó la solicitud a través de Apigee Edge.

  1. Asegúrate de tener todos los encabezados, los parámetros de consulta y las credenciales necesarios se deben pasar al servidor de backend como parte de la solicitud.
  2. Si el servicio de backend es de acceso público, puedes usar el comando curl Postman o cualquier otro cliente REST y, luego, invoca la API del servidor de backend directamente.
  3. Si solo se puede acceder al servidor backend desde Message Processor, puedes usar el comando curl, Postman o cualquier otro cliente REST y, luego, invoca la API del servidor de backend directamente de Message Processor.
  4. Verifica que el servicio de backend muestre el error 503 Servicio no disponible.

Solución

Si determinas que el error 503 viene del servidor backend, puedes siguiente para resolver el problema:

  • Si el problema se debe a que el servidor de backend está inactivo por mantenimiento puedes poner el servidor de backend en línea después del período de mantenimiento.
  • Si el problema se debe a que el servidor backend está sobrecargado, solucionar el problema si tienes acceso al servidor backend. En caso contrario es posible que debas trabajar con tu equipo de servidor de backend para solucionar el problema.

Diagnostica problemas con la supervisión de API

La supervisión de API te permite aislar las áreas problemáticas con rapidez para diagnosticar el error, el rendimiento y de latencia y su fuente, como las apps de desarrollador, los proxies de API, los objetivos de backend, o la plataforma de APIs.

Analizar una muestra situación que demuestra cómo solucionar problemas 5xx con tus APIs con Monitoring de API. Por ejemplo, quizás quieras configurar una alerta para que se te notifique cuando el número de fallas de Messaging.adaptors.http.flow.ErrorResponseCode superó un determinado umbral.

Se debe recopilar información de diagnóstico

Si el problema persiste, incluso después de seguir las instrucciones anteriores, reúne los siguiente información de diagnóstico y, luego, Asistencia de Apigee.

Si eres un usuario de la nube pública, proporciona la siguiente información:

  • Nombre de la organización
  • Nombre del entorno
  • Nombre del proxy de la API
  • Completa el comando curl para reproducir el error 503
  • Archivo de seguimiento que contiene las solicitudes con el error 503 Service no disponible
  • Si no se producen los errores 503 en este momento, proporciona el período con la zona horaria. cuando se produjeron errores 503 en el pasado.

Si eres un usuario de la nube privada, proporciona la siguiente información:

  • Mensaje de error completo observado para las solicitudes fallidas.
  • Organización, nombre del entorno y nombre del proxy de la API en los que observas errores 503.
  • Paquete de proxy de API.
  • Archivo de seguimiento que contiene las solicitudes con el error 503 Service Unavailable.
  • los registros de acceso de NGINX.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  • Registros del procesador de mensajes.
    /opt/apigee/var/log/edge-message-processor/logs/system.log
  • El período con la información de la zona horaria en el que se produjeron los errores 503.