Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
Videos
Para obtener más información sobre los errores 503, consulta los siguientes videos:
Video | Descripción |
---|---|
Soluciona problemas y resuelve el error 503 Service Unavailable - NoActiveTargets | Obtén información sobre los siguientes temas:
|
Síntoma
La aplicación cliente recibe el código de estado de respuesta HTTP 503 con el el mensaje Service Unavailable y el código de error NoActiveTargets para las solicitudes del proxy de API.
Mensaje de error
Verás la siguiente respuesta de error:
HTTP/1.1 503 Service Unavailable
Verás el siguiente mensaje de error en la respuesta HTTP:
{ "fault": { "faultstring": "The Service is temporarily unavailable", "detail": { "errorcode": "messaging.adaptors.http.flow.NoActiveTargets" } } }
Causas posibles
Por lo general, se observa la respuesta HTTP 503 Service Unavailable con el código de error NoActiveTargets cuando usas uno o más servidores de destino en la configuración del extremo de destino en tu proxy de API.
En la siguiente tabla, se enumeran las posibles causas del error 503 Service Unavailable con el código de error de respuesta NoActiveTargets:
Causa | Descripción | Quién puede realizar los pasos para solucionar problemas |
---|---|---|
El servidor de destino está inhabilitado | El servidor de destino especificado en la configuración del extremo de destino está inhabilitado. | Usuarios perimetrales de nubes públicas y privadas |
Errores de conexión debido a una resolución de DNS incorrecta | La resolución DNS del servidor de destino generó direcciones IP incorrectas que generaron errores de conexión. | Usuarios de la nube privada perimetral |
Errores de conexión | Los problemas de red o conectividad impiden que el cliente se conecte al servidor. | Usuarios de la nube privada perimetral |
Alias de host de destino incorrecto | El host del servidor de destino especificado es incorrecto o contiene caracteres no deseados (como un espacio). | Usuarios perimetrales de nubes públicas y privadas |
Fallas del protocolo de enlace SSL | Falló el protocolo de enlace TLS/SSL entre el cliente y el servidor. | Usuarios perimetrales de nubes públicas y privadas |
Errores en las verificaciones de estado | Las verificaciones de estado configuradas para comprobar el estado del servidor de destino pueden fallar por algún motivo. | Usuarios de la nube privada perimetral |
Causa: El servidor de destino está inhabilitado
Si todos los servidores de destino especificados en la configuración del extremo de destino están inhabilitados, Obtendrás una respuesta 503 Service Unavailable con el código de error NoActiveTargets.
Diagnóstico
- Determina el nombre del servidor de destino que se utiliza en el extremo de destino específico Configuración del proxy de API con errores mediante una de las siguientes maneras:
- Si hay un solo extremo de destino, verifica ese extremo de destino específico.
- Si hay varios extremos de destino y no estás seguro de cuál de ellos inhabilitó el servidor de destino, sigue estos pasos:
- Habilita la sesión de seguimiento, realiza la llamada a la API y reproduce el problema - 503 Servicio no disponible.
- Desde el seguimiento, navega a Target Request Flow Started y determina el nombre del extremo de destino como se muestra a continuación:
- Cuando hayas identificado el extremo de destino, obtén el nombre del servidor de destino utilizado en la configuración del extremo de destino, tal como se muestra en el siguiente ejemplo:
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
En el ejemplo anterior, hay un único servidor de destino llamado demo-target.
- Obtén la definición de cada uno de los servidores de destino que se usan en el extremo de destino mediante la IU de Edge o la llamada a la API de Edge.
IU de Edge
Para obtener la definición con la IU de Edge, haz lo siguiente:
- Navega a Administrador > Entornos > Servidores de destino.
- Selecciona el entorno específico en el que ves la falla.
- Busca el nombre del servidor de destino específico para obtener la definición del servidor de destino.
Por ejemplo, escribe el nombre del servidor de destino
demo-target
y verás su definición como se muestra a continuación:Observa que el servidor de destino demo-target tiene un alias de host y el puerto #, y que SSL está habilitado. Sin embargo, el servidor de destino está inhabilitado , lo que se indica cuando el elemento HABILITADO está inhabilitado.
API de Edge
Para obtener la definición con la API de Edge, sigue estos pasos:
Utiliza el Obtén la API de TargetServer para obtener la definición del servidor de destino.
Resultado de la definición del servidor de destino
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
El resultado de la API de Apigee muestra que el servidor de destino demo-target está inhabilitado. ya que el elemento IsEnabled se establece en falso.
Dado que el servidor de destino está inhabilitado, el procesador de mensajes enviará 503 Service No disponible con el código de error NoActiveTargets inmediatamente como respuesta al cliente.
Solución
Asegúrate de que los servidores de destino específicos que se usaron en la configuración del extremo de destino de tu API Los proxies siempre están habilitados.
IU de Edge
- Navega a Administrador > Entornos > Servidores de destino.
- Selecciona el entorno específico en el que ves la falla.
- Busca el nombre específico del servidor de destino para obtener su definición.
- Selecciona el servidor de destino específico y haz clic en Editar.
- Selecciona la casilla de verificación Habilitada.
- Haz clic en Actualizar.
API de Edge
Utiliza el Actualiza una API del servidor de destino para actualizar la definición del servidor de destino y garantizar que IsEnabled está configurado como verdadero en la carga útil de la solicitud de la API, como se muestra a continuación:
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Si el problema persiste, ve a Se debe recopilar información de diagnóstico.
Diagnostica problemas con la supervisión de API
La supervisión de API permite aislar problemas áreas con rapidez para diagnosticar problemas de errores, latencia y rendimiento, y su fuente, como los proxies de API, destinos de backend o la plataforma de API.
Analizar una situación de ejemplo
que demuestra cómo solucionar problemas 5xx con tus APIs con la supervisión de API. Por ejemplo:
te recomendamos configurar una alerta para que se te notifique cuando la cantidad de messaging.adaptors.http.flow.NoActiveTargets
de errores exceden un umbral en particular.
Se debe recopilar información de diagnóstico
Si el problema persiste, incluso después de seguir las instrucciones anteriores, reúne la siguiente y la información de diagnóstico. Comunícate con el equipo de asistencia de Apigee y compártelas:
- Si eres usuario de la nube pública, proporciona la siguiente información:
- Nombre de la organización
- Nombre del entorno
- Nombre del proxy de API
- Completar el comando curl para reproducir el error
- Archivo de seguimiento que contiene las solicitudes con 503 Service Unavailable con el código de error NoActiveTargets
- Si eres usuario de la nube privada, proporciona la siguiente información:
- Se observó un mensaje de error completo
- Nombre del entorno
- Paquete de proxy de API
- Archivo de seguimiento que contiene las solicitudes con 503 Service Unavailable con el código de error NoActiveTargets
- 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
)