Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Cómo puedo solucionar los errores HTTP 502 del equilibrador de carga de aplicación?
Quiero usar las métricas y los registros de acceso de Amazon CloudWatch para solucionar los errores HTTP 502 "Bad gateway" que recibo con mi equilibrador de carga de aplicación.
Resolución
Búsqueda del origen de los errores HTTP 502
Hay varias causas posibles para los errores HTTP 502: Bad gateway. El origen del error puede ser el objetivo o el equilibrador de carga. Para identificar el origen del error, utiliza las métricas de CloudWatch y los registros de acceso.
Uso de las métricas de CloudWatch
Si la métrica HTTPCode_ELB_502_Count tiene puntos de datos, el equilibrador de carga es el origen del error. Si la métrica HTTPCode_Target_5XX_Count tiene puntos de datos, el objetivo es el origen del error.
Uso de los registros de acceso
Si elb_status_code es "502" y target_status_code es "-", el equilibrador de carga es el origen del error. Si elb_status_code es "502" y target_status_code es "502", el objetivo es el origen del error.
Solución de errores HTTP 502
Para determinar la causa, filtra los registros de acceso por **elb_status_code = **** y **target_status_code"502". A continuación, completa la resolución del problema que estás experimentando.
El equilibrador de carga recibe un TCP RST del objetivo cuando intenta establecer una conexión
Es posible que recibas un mensaje TCP RST del objetivo al establecer una conexión. Este mensaje aparece cuando el equilibrador de carga no puede establecer un protocolo de enlace TCP de 3 vías con el objetivo. Como resultado, el equilibrador de carga no puede reenviar la solicitud del usuario al objetivo.
Comprueba la métrica TargetConnectionErrorCount para ver los puntos de datos que muestran que el objetivo rechaza las conexiones del equilibrador de carga con un TCP RST.
En los registros de acceso, configura los campos request_processing_time, target_processing_time y response_processing_time en un valor -1. Cuando configuras el valor en \ -1, el equilibrador de carga no puede enviar la solicitud al objetivo porque debes conectar el equilibrador de carga.
A continuación se muestra un ejemplo de una entrada de registro de acceso que tiene los campos request_processing_time, target_processing_time y response_processing_time configurados en -1:
http 2022-04-15T16:52:50.757968Z app/my-loadbalancer/50dc6c495c0c9188 192.168.131.39:2817 10.0.0.1:80 -1 -1 -1 502 - 86 155 "GET http://example.com:80/ HTTP/1.1" "curl/7.51.0" - - arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" Root=1-58337262-36d228ad5d99923122bbe354"
**El equilibrador de carga recibe una respuesta inesperada del objetivo, como **, cuando el equilibrador de carga intenta conectarse"ICMP Destination unreachable (Host unreachable)"
Configura los campos request_processing_time, target_processing_time y response_processing_time de los registros de acceso en un valor -1. A continuación, confirma que las subredes del equilibrador de carga permiten el tráfico a los objetivos del puerto del objetivo.
El objetivo cierra la conexión con un TCP RST o un TCP FIN cuando el equilibrador de carga tiene una solicitud pendiente en el objetivo
El equilibrador de carga recibe una solicitud y la reenvía al objetivo. El objetivo comienza a procesar la solicitud, pero cierra la conexión con el equilibrador de carga demasiado pronto. Esto ocurre cuando la duración del tiempo de espera de mantenimiento de actividad que has configurado en el objetivo es inferior al valor de tiempo de espera de inactividad del equilibrador de carga. Asegúrate de que la duración del tiempo de espera de mantenimiento de actividad sea mayor que el valor del tiempo de espera de inactividad.
La respuesta del objetivo tiene un formato incorrecto o encabezados HTTP que no son válidos
Para solucionar los problemas de la respuesta del objetivo, haz una captura de paquetes en el objetivo durante el periodo de tiempo del problema.
Para realizar una captura de paquetes para Linux, ejecuta el siguiente comando:
sudo tcpdump -i any -w filename.pcap
Importante: Si la instancia de objetivo tiene una gran cantidad de tráfico, el archivo de captura de paquetes (PCAP) que genera la colección tcpdump puede afectar al espacio en disco. Una gran cantidad de tráfico también puede afectar a los servicios de la instancia de objetivo.
En Windows, descarga la aplicación Wireshark en el sitio web de Wireshark y utilízala.
Para usar tcpdump para probar muestras de captura de paquetes, consulta ¿Cómo soluciono los problemas de rendimiento de red entre las instancias de Amazon Elastic Compute Cloud (Amazon EC2) de Linux o Windows en una Amazon Virtual Private Cloud (Amazon VPC) y un host local a través de la puerta de enlace de Internet?
El equilibrador de carga detecta un error de protocolo de enlace SSL cuando se conecta a un objetivo
La conexión TCP desde el equilibrador de carga al agente de escucha HTTPS del objetivo se lleva a cabo correctamente, pero se produce un error en el protocolo de enlace SSL posterior. Como resultado, el equilibrador de carga no puede reenviar la solicitud al objetivo.
Si el grupo objetivo usa el protocolo HTTPS, realiza una captura de paquetes en el objetivo durante el periodo de tiempo del problema.
El servidor debe usar un conjunto de cifrado TLS compatible con la política de seguridad que usa el equilibrador de carga para las conexiones de backend.
Ha pasado el periodo de retraso de la cancelación del registro para una solicitud que administra un objetivo del que se ha cancelado el registro
En los eventos de AWS CloudTrail, comprueba si hay una acción de API DeregisterTargets durante el periodo de tiempo del problema. Si se anuló el registro del objetivo demasiado pronto, se produce un error HTTP 502. Para solucionar este problema, aumenta el periodo de retraso de cancelación del registro para que las operaciones más prolongadas puedan completarse.
Solución de los errores HTTP 502 cuando el objetivo es una función de Lambda
En el caso de las solicitudes que no acceden a una función de AWS Lambda, comprueba los códigos de motivo del error de Lambda en el campo error_reason de los registros de acceso del equilibrador de carga.
El objetivo es una función de Lambda y el cuerpo de la respuesta supera 1 MB
Para confirmar el problema, comprueba si hay un punto de datos para la métrica LambdaUserError. O bien, comprueba si el campo error_reason del registro de acceso del equilibrador de carga está configurado en LambdaResponseTooLarge.
Para solucionar el problema, actualiza el código de Lambda y agrega una lógica de gestión de errores.
El objetivo es una función de Lambda que no respondió antes de que se alcanzara el tiempo de espera configurado
Para confirmar el problema, comprueba si hay un punto de datos para la métrica LambdaUserError. O bien, comprueba si el campo error_reason del registro de acceso del equilibrador de carga está configurado en LambdaUnhandled.
El objetivo es una función Lambda que devolvió un error o Lambda limitó la función
Para confirmar si Lambda limitó la función, comprueba la métrica Throttles para ver un punto de datos. Si Lambda limitó la función, utiliza AWS Service Quotas para solicitar un aumento de cuota para la ejecución simultánea de Lambda.
Para obtener más información, consulta Descripción de la limitación de invocaciones de Lambda.
- Etiquetas
- Elastic Load Balancing
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace 3 meses
- preguntada hace 10 meses
- preguntada hace 10 meses
- preguntada hace 3 meses