Veo errores HTTP 502 cuando mi cliente hace solicitudes a un sitio web a través de un equilibrador de carga clásico. ¿Cómo puedo solucionar este problema?

Los errores HTTP 502 (bad gateway) (gateway no válida) pueden ocurrir por una de las siguientes razones:

  • El servidor web o los servidores de aplicaciones backend asociados que se ejecutan en instancias EC2 regresan un mensaje que el equilibrador de carga clásico no puede analizar.
  • El servidor web o los servidores de aplicaciones backend asociados regresan un mensaje de error 502 propio.

Para encontrar la fuente de estos errores 502:

Si la respuesta del backend es la fuente del error 502 de ELB, el problema podría causarlo:

  • Una respuesta que contiene más de un CRLF entre cada encabezado.
  • Una respuesta que contiene un encabezado Content-Length que contiene un número no entero.
  • Una respuesta que tiene más bytes en el cuerpo que el valor del encabezado Content-Length.

Si el error 502 lo generan sus servidores backend, contacte con el propietario de su aplicación. Si el error 502 lo genera el equilibrador de carga clásico, la respuesta HTTP del backend tiene un formato incorrecto. Siga estos pasos para solucionar los errores 502 generados por ELB: 

1. Verifique si el cuerpo de la respuesta que regresa la aplicación backend cumple con las especificaciones HTTP mencionadas en los siguientes RFC:
RFC 7230 - HTTP/1.1: sintaxis y enrutamiento de mensajes
RFC 7231 - HTTP/1.1: semántica y contenido
RFC 7232 - HTTP/1.1: solicitudes condicionales
RFC 7233 - HTTP/1.1: solicitudes de rango
RFC 7234 - HTTP/1.1: caché
RFC 7235 - HTTP/1.1: autenticación

2. Confirme que el encabezado de respuesta tenga la sintaxis correcta: una clave y el valor, como Content-Type:text. Asegúrese de que no falte Content-Length o la codificación de la transferencia en el encabezado de respuesta HTTP. Para más información sobre los campos de encabezado HTTP del servidor web, consulte esta Lista de campos de encabezado HTTP. Examine las respuestas HTTP regresadas mediante la ejecución de un comando similar al siguiente:

curl -vko /dev/null server_instance_IP

3. Verifique el registro de acceso de ELB en busca de errores HTTP 502 duplicados. Los errores 502, tanto para elb_status_code como para backend_status_code, indican que hay un problema con una o más instancias del servidor web. Identifique qué instancias del servidor web están mostrando el problema y verifique los registros del servidor web de las instancias del servidor web backend. Consulte las siguientes ubicaciones de registro para algunos servidores web y sistemas operativos comunes:

Registros de Apache

  • Los registros del servidor web para CentOS, RHEL, Fedora y Amazon Linux se encuentran en el directorio /var/log/httpd/.
  • Los registros del servidor web para Debian y Ubuntu Linux se encuentran en el directorio /var/log/apache2 y /var/log/lighthttpd/.

Registros de Nginx

  • La ubicación de los registros de acceso de nginx se define en el archivo nginx.conf: access_log /path/to/access.log
  • La ubicación predeterminada es /var/log/nginx/access.log

Registros de IIS

Los registros del servidor web para Windows IIS 7, IIS 7.5 e IIS 8.0 se almacenan en el directorio inetpub\logs\Logfiles. Para más información sobre los registros de Internet Information Server (IIS), consulte El código de estado HTTP en IIS 7.0, IIS 7.5 e IIS 8.0. Si confirmó que sus errores 502 los genera ELB y que la respuesta de su backend se ajusta a las convenciones RFC, contacte a AWS Support.


¿Le ha servido de ayuda esta página? | No

Volver al Centro de conocimientos de AWS Support

¿Necesita ayuda? Visite AWS Support Center

Fecha de publicación: 9 de septiembre de 2016

Actualizado: 10 de abril de 2018