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

1.2K
Vistas
Tiempo de espera de puerta de enlace de AWS Elastic Beanstalk 504

Tengo un servidor Node ejecutándose en AWS Elastic Beanstalk. Uno de mis terminales acepta una gran carga útil y la función en sí es bastante lenta y larga, y puede demorar más de 10 minutos.

Debido a los requisitos comerciales, debe permanecer como un POST HTTP único y no se puede dividir para que sea más pequeño.

En llamadas más grandes recibo un 504 TIEMPO DE ESPERA DE LA PUERTA DE ENLACE, siempre alrededor de la marca de 60 segundos. He intentado jugar con la configuración de tiempo de espera en la sección Equilibrador de carga de Elastic Beanstalk sin éxito, parece que la duración más larga del tiempo de espera es de 60 segundos de todos modos.

Vi una solución prometedora en los documentos en https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html

Para asegurarse de que las operaciones largas, como la carga de archivos, tengan tiempo para completarse, envíe al menos 1 byte de datos antes de que transcurra cada período de tiempo de inactividad.

Esto suena como exactamente lo que necesito, pero no sé cómo lograr

1) ¿Cómo puedo "enviar al menos 1 byte de datos" desde mi aplicación Node para asegurarme de que la sesión se mantenga activa y no se agote después de un minuto?

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

0

504 Los tiempos de espera en entornos de ElasticBeanstalk se pueden resolver configurando sus políticas de ELB. También puede ser necesario actualizar las configuraciones de tiempo de espera de Nginx.

  • Políticas de ELB: establezca el tiempo de espera de inactividad de su Elastic Load Balancer en el valor de su elección (el valor predeterminado es 60 s). Para ello, cree una carpeta .ebextensions en la raíz de su proyecto. En esta carpeta, cree otro archivo con una extensión de archivo .config y establezca el tiempo de espera de inactividad de ELB en el valor de su elección (por ejemplo, 300 segundos):

     option_settings: - namespace: aws:elb:policies option_name: ConnectionSettingIdleTimeout value: 300

    O si está utilizando un balanceador de carga de aplicaciones:

     option_settings: - namespace: aws:elbv2:loadbalancer option_name: IdleTimeout value: 300
  • Configuración de Nginx: configure Nginx con el valor deseado de tiempo de espera: send_timeout , proxy_connect_timeout , proxy_read_timeout, proxy_Send_timeout todos predeterminados en 60 s (la especificación adicional para verificar puede ser: client_header_timeout , client_body_timeout , keepalive_timeout ). Los valores de tiempo de espera predeterminados en Nginx se especifican en los archivos de configuración y especificaciones (por ejemplo, los archivos .config en /etc/nginx ). En la carpeta .ebextensions cree un archivo nuevo (p. ej. 01-nginx-configuration.config o actualice en el archivo .config anterior) y agregue el siguiente contenido dentro del archivo (agregue o elimine configuraciones relevantes de acuerdo con los tiempos de espera observados):

     files: "/etc/nginx/conf.d/nginx.custom.conf": mode: "644" owner: "root" group: "root" content: | client_header_timeout 300; client_body_timeout 300; send_timeout 300; proxy_connect_timeout 300; proxy_read_timeout 300; proxy_send_timeout 300; container_commands: 01_restart_nginx: command: "sudo service nginx reload"

Hay varias formas más de agregar esta configuración. Leer más aquí y aquí .

Editar (11/06/2020): Algunas personas indicaron que el keep_alive 300; la configuración aplastó su servidor. Por lo tanto, lo eliminé de la configuración de nginx.custom.conf .

over 4 years ago · Santiago Trujillo Denunciar

0

Para actualizar la configuración de nginx en la plataforma Amazon Linux 2, logré aumentar los límites de tiempo de espera extendiendo la configuración de nginx siguiendo estas instrucciones: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms- linux-extender.html

/.platform/nginx/conf.d/myconf.conf :

 client_header_timeout 300; client_body_timeout 300; send_timeout 300; proxy_connect_timeout 300; proxy_read_timeout 300; proxy_send_timeout 300;
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