Saltar al contenido

¿Cómo soluciono el error “413 Request Entity Too Large” cuando subo archivos a mi entorno de Elastic Beanstalk?

3 minutos de lectura
0

Quiero personalizar el valor «client_max_body_size» en mi configuración de NGINX para poder cargar archivos de gran tamaño en mi entorno de AWS Elastic Beanstalk.

Resolución

El límite de carga de archivos predeterminado de NGINX es de 1 MB. Para cargar archivos de más de 1 MB, actualiza el valor client_max_body_size.

Importante: M y MB son expresiones equivalentes para «megabyte». Por ejemplo, 2 M equivale a 2 MB. Sin embargo, la configuración de NGINX solo acepta «M» como valor de sintaxis válido. No hay espacio entre el número y la letra «M».

Nota: Para personalizar la configuración de proxy predeterminada para todas las versiones de las plataformas Amazon Linux 2 y Amazon Linux 2023, consulta Ampliación de las plataformas Linux de Elastic Beanstalk.

Para configurar el valor client_max_body_size en Amazon Linux 2 y Amazon Linux 2023, completa los pasos siguientes:

  1. Crea un archivo de configuración.conf denominado client_max_body_size.conf que incluya lo siguiente:

    client_max_body_size 50M;
  2. Copia el archivo .conf client_max_body_size.conf en una carpeta denominada .platform/nginx/conf.d/ del paquete de código fuente de la aplicación.

    Nota: La configuración de NGINX de Elastic Beanstalk incluye automáticamente los archivos .conf en la carpeta .platform. Asegúrate de crear esta ruta si el archivo .conf no existe en tu paquete de origen.

El siguiente ejemplo muestra la estructura del directorio .platform y del archivo .conf en el archivo zip de la aplicación en la plataforma Java SE. La carpeta .platform debe estar ubicada en la raíz del paquete de origen de la aplicación para todas las plataformas Linux. Para obtener más información sobre la agrupación de aplicaciones, consulta la documentación de tu plataforma.

~/my-app.zip/
|-- web.jar
|-- Procfile
|-- readme.md  
`-- .platform/
    |-- nginx/                # Proxy configuration
    |   `-- conf.d/
    |       `-- client_max_body_size.conf
  1. Despliega la nueva versión de la aplicación en tu entorno de Elastic Beanstalk.
  2. Usa SSH para iniciar sesión en la instancia de Amazon Elastic Compute Cloud (Amazon EC2) que se ejecuta en tu entorno de Elastic Beanstalk.
  3. Para comprobar que la sintaxis de configuración de NGINX es correcta y que se aplican los cambios realizados en el valor client_max_body_size, ejecuta el siguiente comando.
    $ sudo nginx -T | egrep -i "client_max_body_size"
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
    client_max_body_size 50M;

Información relacionada

Creación de un paquete de origen de la aplicación

OFICIAL DE AWSActualizada hace 2 años