Las solicitudes fallan entre un equilibrador de carga y el gateway de API debido a problemas de conectividad o sustitución de subred
Descubra cómo solucionar problemas con la ruta de red entre un equilibrador de carga y un gateway de API creado con el servicio API Gateway.
Al colocar una URL de equilibrador de carga delante de API Gateway y las solicitudes devuelven 504 Gateway Timeout, el fallo suele estar en la ruta de red entre el equilibrador de carga y API Gateway. Puede que la aplicación backend funcione correctamente, pero es posible que la solicitud no llegue a API Gateway o al servicio backend a través de la nueva ruta.
Emitir síntomas
Es posible que vea uno o más de los siguientes síntomas:
- La nueva URL del equilibrador de carga devuelve
504 Gateway Timeout. - Se completa la autenticación, pero no se alcanza la aplicación.
- Los logs de acceso de gateway de API y los logs de ejecución no muestran la solicitud esperada.
- El mismo servicio de backend funciona a través de una ruta, pero falla a través de la nueva URL del equilibrador de carga.
Causas posibles
Este problema puede tener una o más de las siguientes causas:
- El juego de backends del equilibrador de carga apunta al punto final de gateway de API incorrecto.
- El equilibrador de carga y el gateway de API utilizan subredes que no permiten la ruta de tráfico necesaria.
- Los grupos de seguridad de red (NSG) o las listas de seguridad no permiten el tráfico entre el equilibrador de carga y el gateway de API.
- Las tablas de rutas no soportan la ruta de red entre el equilibrador de carga y el gateway de API.
- Se agota el tiempo de espera de la solicitud antes de que API Gateway pueda procesarla.
Asignar ruta de solicitud
Revise cada parte de la ruta de solicitud antes de actualizar las reglas de red o los destinos de backend:
- De cliente a equilibrador de carga.
- Equilibrador de carga a gateway de API.
- Gateway de API para el servicio backend.
En la consola, verifique los siguientes recursos:
- El listener de frontend del equilibrador de carga.
- Juego de backends del equilibrador de carga.
- Destino de backend definido para API Gateway.
- Subred del equilibrador de carga.
- Subred de gateway de API.
- OCID de API Gateway.
- OCID del despliegue del API.
Verifique que el juego de backends del equilibrador de carga tiene como destino la dirección o el punto final de gateway de API deseado, no una ruta obsoleta o inaccesible.
Comprobación de si la solicitud alcanza el gateway de API
Envíe la solicitud a través de la URL del equilibrador de carga y capture la respuesta:
curl -i https://<load-balancer-url>/<path>
Revise los logs de API Gateway para la solicitud:
- Abra el log de acceso de API Gateway.
- Abra el log de ejecución de API Gateway.
- Busque en la ventana de tiempo la solicitud fallida.
- Si el valor está disponible, busque el valor
opc-request-id.
Utilice los resultados del log para identificar dónde ha fallado la solicitud:
- Si los logs de API Gateway no muestran la solicitud, solucione los problemas del equilibrador de carga o la ruta de red antes de API Gateway.
- Si los logs de API Gateway muestran la solicitud, solucione los problemas de la ruta de acceso del gateway de API al servicio backend.
Revisar reglas de red y colocación de subred
Para la subred del equilibrador de carga y la subred del gateway de API, revise los siguientes recursos de red:
- Tablas de rutas.
- NSG.
- Listas de seguridad.
Verifique los siguientes requisitos de red:
- La subred del equilibrador de carga puede enviar tráfico a la subred del gateway de API.
- La subred de gateway de API puede recibir el tráfico necesario de la ruta del equilibrador de carga.
- Ninguna regla bloquea el protocolo o el puerto que utiliza el equilibrador de carga para conectarse a API Gateway.
Si el equilibrador de carga y el gateway de API se han creado en distintas subredes para la nueva ruta, compare esas subredes con la ruta de trabajo conocida.
Solucione el problema de conectividad
Aplique la resolución que coincida con el problema encontrado:
- Si el juego de backends del equilibrador de carga apunta al destino de gateway de API incorrecto, actualice el juego de backends.
- Si la subred del equilibrador de carga y la subred del gateway de API no soportan la ruta de acceso deseada, actualice la configuración de enrutamiento o colocación de la subred.
- Si los grupos de seguridad de red o las listas de seguridad bloquean la ruta, actualice las reglas de entrada o salida.
- Si las tablas de rutas no permiten el tráfico entre el equilibrador de carga y API Gateway, actualice las reglas de ruta.
- Si el gateway de API nunca recibe la solicitud, corrija la ruta del gateway de equilibrador de carga a API antes de solucionar el problema del servicio backend.
Verificar Conectividad
Después de actualizar el destino backend, la ubicación de la subred o las reglas de red, vuelva a verificar la conectividad:
- Enviar la misma solicitud a través de la URL del equilibrador de carga.
- Confirme que la solicitud aparece en los logs de API Gateway.
- Confirme que la respuesta
504 Gateway Timeoutya no se produce en la ruta de acceso del equilibrador de carga al gateway de API. - Confirme que se puede acceder a la aplicación a través de la URL externa deseada.
Para obtener más información
Para obtener más información, consulte: