Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

567
Views
AWS Load Balancer 502 puerta de enlace incorrecta

Tengo microservicios escritos en node/express alojados en EC2 con un balanceador de carga de aplicaciones.

Algunos usuarios obtienen un 502 incluso antes de que la solicitud llegue al servidor.

Registro cada registro dentro de cada instancia, y no tengo los registros de esas solicitudes, tengo la solicitud inmediatamente anterior a la 502 y las solicitudes justo después de la 502, por eso asumo que la solicitud nunca llega a los servidores. La mayoría de los usuarios solucionan esto refrescando la página o usando una pestaña anónima, que hace la conexión a una máquina diferente (tenemos 6).

Puedo decir a partir de los registros del balanceador de carga que el balanceador de carga responde casi de inmediato a la solicitud con 502. Supongo que esto podría ser un TCP RST.

Tuve un problema similar hace mucho tiempo y tuve que agregar keepAliveTimeout y headersTimeout a la configuración del nodo. Aquí está mi configuración (todavía usando el valor predeterminado de LB de los años 60):

 server.keepAliveTimeout = 65000; server.headersTimeout = 80000;

Las métricas, especialmente el uso de memoria y CPU de todas las instancias, están bien.

Estos errores 502 comenzaron después de una actualización que hicimos donde introdujimos varios paquetes, por ejemplo, axios. Al principio, pensé que podría ser axios, porque el keep-alive no está habilitado de forma predeterminada. Pero no funcionó. Aparte de los axios , solo usamos la solicitud .

¿Algún consejo sobre cómo debo depurar/arreglar este problema?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Los errores HTTP 502 generalmente son causados por un problema con el balanceador de carga. Lo que explicaría por qué las solicitudes nunca llegan a su servidor, presumiblemente porque el equilibrador de carga no puede llegar al servidor por alguna u otra razón.

Este enlace tiene algunos consejos sobre cómo obtener registros de un balanceador de carga clásico. Sin embargo, dado que no especificó, es posible que esté usando un balanceador de carga de aplicaciones, en cuyo caso este enlace podría ser más útil.

over 4 years ago · Santiago Trujillo Report

0

A partir de los registros de acceso de ALB, supe que ALB no podía conectar el destino o que el destino finalizaba inmediatamente la conexión.

Y la parte más difícil fue descubrir cómo replicar el error 502.

Parece que la versión de nodo que estaba usando tiene un límite de tamaño de encabezado de solicitud de 8 kb. Si alguna solicitud excediera ese límite, el destino rechazaría la conexión y el ALB devolvería un error 502.

Solución:

Resolví el problema agregando --max-http-header-size=size a la línea de comando de inicio del nodo, donde el tamaño es un valor mayor a 8kb.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!