¿Cómo personalizo mi configuración de nginx para modificar “client_max_body_size” en Elastic Beanstalk?

2 minutos de lectura
0

Quiero subir archivos de gran tamaño a mi entorno de AWS Elastic Beanstalk sin recibir el mensaje de error “413 Request Entity Too Large” (413 Entidad de solicitud demasiado grande).

Descripción breve

De forma predeterminada, NGINX tiene un límite de 1 MB para subir archivos. Si el tamaño de una solicitud supera el valor configurado, se devuelve el error 413 Request Entity Too Large (413 Entidad de solicitud demasiado grande). Para cargar archivos de más de 1 MB, configure la directiva client_max_body_size en los archivos de configuración de NGINX.

Importante: M y MB son expresiones equivalentes para “megabyte”. Por ejemplo, 2 M equivale a 2 MB. Sin embargo, utilice solo M en el archivo de configuración, ya que los MB no son válidos en un archivo de configuración.

Resolución

Para configurar client_max_body_size en los entornos de Amazon Linux 2, haga lo siguiente:

1.    Para ampliar la configuración de NGINX predeterminada de Elastic Beanstalk, agregue el archivo de configuración client_max_body_size.conf que incluye lo siguiente:

client_max_body_size 50M;

Nota: En el ejemplo anterior, el valor de client_max_body_size se actualizó a 50 M. En lugar de 50, sustituya cualquier valor según sus necesidades.

2.    Copie el archivo de configuración .conf client_max_body_size.conf a una carpeta denominada .platform/nginx/conf.d/ del paquete de código fuente de la aplicación. La configuración de NGINX de Elastic Beanstalk incluye automáticamente los archivos .conf en esta carpeta. Asegúrese de crear esta ruta si no existe en su paquete fuente. El siguiente ejemplo muestra la estructura del directorio .platform y del archivo .conf del archivo zip de la aplicación:

-- .ebextensions
       -- other non nginx server config files
            
-- .platform
       -- nginx
           -- conf.d
                 -- client_max_body_size.conf
                   
-- other application files

El archivo client_max_body_size.conf tiene una ruta como esta: my-app/.platform/nginx/conf.d/client_max_body_size.conf.

3.    Implemente el código y el nuevo directorio .platform/ juntos como una nueva versión de la aplicación en su entorno de Elastic Beanstalk.

4.    Una vez finalizada la implementación, inicie sesión en la instancia que se ejecuta en el entorno de Elastic Beanstalk. Después de iniciar sesión, compruebe que la configuración del servidor NGINX esté aplicada. Para hacerlo, utilice 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;

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año