es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

client_max_body_size está en el archivo de configuración de Nginx, pero parece que está siendo ignorado.

Me encuentro con el código de estado 413 Request Entity Too Large. Estoy ejecutando una instancia AMI de Amazon Linux 2 en Elastic Beanstalk de AWS, que está ejecutando un servidor express con una ruta post que carga archivos en un Bucket de S3 y luego agrega datos a una tabla y produce un mensaje kafka. Todo funciona correctamente con archivos de menos de 1MB de tamaño.

Entiendo que el valor predeterminado de tamaño máximo de nginx es de 1MB y que debo cambiarlo.

He probado todas las respuestas en esta publicación https://stackoverflow.com/questions/18908426/increasing-client-max-body-size-in-nginx-conf-on-aws-elastic-beanstalk pero a pesar de agregar client_max_body_size 10M; dentro del archivo nginx.conf y reiniciar nginx cada vez que cambié una configuración, utilizando nginx -t para ver si había algún error en la sintaxis, que resultó en todo estando bien, y finalmente comprobando mediante este comando que la línea client_max_body_size 10M; estaba efectivamente allí, cuando acusó que había un duplicado de ella dentro del archivo, todas estas configuraciones parecían ser completamente ignoradas por mi micro-servicio cada vez que intento enviar un archivo mayor a 1MB.

También intenté colocar mis archivos de configuración dentro de una estructura .platform/conf.d/, lo cual hizo que client_max_body_size 10M; se incluyera en el archivo nginx.conf, pero aun así no hizo ninguna diferencia para mi solicitud.

También he probado recargar y reiniciar el servicio de nginx, sin éxito.

No tengo muchas ideas sobre cómo proceder a partir de aquí. ¿Alguna sugerencia?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución para el código de estado 413 Request Entity Too Large en Amazon Elastic Beanstalk

    Problema

    Te encuentras con el código de estado 413 Request Entity Too Large al cargar archivos de tamaño superior a 1MB. Estás ejecutando una instancia de Amazon Linux 2 AMI en Elastic Beanstalk de AWS, la cual está ejecutando un servidor Express con una ruta de envío que carga archivos en un Bucket de S3 y luego agrega algunos datos a una tabla y produce un mensaje Kafka.

    Solución

    Para aumentar el valor de tamaño máximo de Nginx desde el valor predeterminado de 1MB, sigue estos pasos:

    1. Crea un directorio .ebextensions en el nivel raíz de tu proyecto si aún no existe.
    2. Crea un archivo .config dentro del directorio .ebextensions. Puedes nombrar el archivo como desees, pero asegúrate de que tenga la extensión .config.
    3. Dentro del archivo .config, agrega el siguiente bloque de código:
    files:
     "/etc/nginx/conf.d/proxy.conf":
     mode: "000755"
     owner: root
     group: root
     content: |
         client_max_body_size 10M;
    

    Esto creará un nuevo archivo llamado proxy.conf dentro del directorio /etc/nginx/conf.d/ de Nginx y agregará la línea client_max_body_size 10M; a dicho archivo.

    1. Implementa tu aplicación con el nuevo archivo .config. Una vez que la aplicación esté implementada, ejecuta los siguientes comandos a través de SSH:
    $ sudo service nginx restart
    $ sudo service awslogs restart
    

    Estos comandos reiniciarán los servicios de Nginx y registros de AWS para asegurar que los cambios surtan efecto.

    Con esta configuración, deberías poder cargar archivos de hasta 10MB a través de tu servidor Express sin encontrar el error 413.

Comments are closed.