Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

646
Vistas
AWS ElasticBeanstalk NodeJS: error 502: recv() falló (104: conexión restablecida por el par) al leer el encabezado de respuesta desde arriba

Estamos planeando migrar nuestra plataforma NodeJS de EC2 simple a ElasticBeanstalk. Durante este proceso, después de algunas dificultades, implementamos nuestra aplicación y pudimos acceder y realizar acciones. Sin embargo, para algunas solicitudes, recibimos el error 502 .

Después de revisar los registros que encontramos a continuación;


/var/log/nginx/error.registro

2020/03/16 06:12:09 [error] 3009#0: * 119488 recv() falló (104: conexión restablecida por el par) al leer el encabezado de respuesta del flujo ascendente, cliente: xxx.xx.xx.xxx, servidor: , solicitud: "POST /www_auth/register HTTP/1.1", upstream: " http://127.0.0.1:8081/register ", host: "****.us-east-2.elasticbeanstalk.com"

Ocurre al azar y no tengo ni idea. Siento algunos cambios en el nivel de configuración que me perdí/necesito agregar con nginx.

Si tiene algún paso/sugerencia para resolver esto, ¡se lo agradezco!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

AWS Elastic Load Balancer se conecta previamente a los servidores de backend y puede provocar una condición de carrera en la que ELB cree que una conexión está abierta, pero el backend de Node.js ya la ha cerrado, debido a server.keepAliveTimeout de 5 segundos de inactividad inactiva, el valor predeterminado en Node.js 8.x y posteriores.

Deshabilite server.keepAliveTimeout y server.headersTimeout para solucionar este problema, o establezca estos tiempos de espera en un valor de ms mayor que el valor de tiempo de espera inactivo de AWS ELB.

 const app = express(); // Set up the app... const server = app.listen(8080); // Disable both timeouts server.keepAliveTimeout = 0; server.headersTimeout = 0;

El crédito por esta solución es para Shuhei Kagawa:

https://shuheikagawa.com/blog/2019/04/25/keep-alive-timeout/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda