Comment personnaliser ma configuration nginx pour modifier « client_max_body_size » dans Elastic Beanstalk ?

Lecture de 2 minute(s)
0

Je veux charger des fichiers de grande taille dans mon environnement AWS Elastic Beanstalk sans recevoir le message d'erreur « 413 Request Entity Too Large » (413 Entité de demande trop grande).

Brève description

Par défaut, NGINX a une limite de 1 Mo pour les chargements de fichiers. Si la taille d'une demande dépasse la valeur configurée, l'erreur 413 Request Entity Too Large (413 Entité de demande trop grande) est renvoyée. Pour charger des fichiers de plus de 1 Mo, configurez la directive client_max_body_size dans les fichiers de configuration NGINX.

Important : M et Mo sont des expressions équivalentes à « mégaoctet ». Par exemple, 2 M équivaut à 2 Mo. Cependant, utilisez uniquement M dans votre fichier de configuration, car Mo n'est pas valide dans un fichier de configuration.

Résolution

Pour configurer fichier client_max_body_size dans les environnements Amazon Linux 2, procédez comme suit :

1.    Pour étendre la configuration NGINX par défaut d'Elastic Beanstalk, ajoutez le fichier de configuration client_max_body_size.conf qui inclut les éléments suivants :

client_max_body_size 50M;

Remarque : dans l'exemple précédent, la valeur du paramètre client_max_body_size est mise à jour à 50 Mo. Substituez n'importe quelle valeur à la place de 50 en fonction de vos besoins.

2.    Copiez le fichier de configuration client_max_body_size.conf dans un dossier nommé .platform/nginx/conf.d/ dans la solution groupée de sources de votre application. La configuration NGINX d'Elastic Beanstalk inclut automatiquement les fichiers .conf dans ce dossier. Assurez-vous de créer ce chemin s'il n'existe pas dans votre solution groupée de sources. L'exemple suivant montre la structure du répertoire .platform et du fichier .conf dans le fichier zip de l'application :

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

Le fichier client_max_body_size.conf possède un chemin comme celui-ci :my-app/.platform/nginx/conf.d/client_max_body_size.conf.

3.    Déployez votre code et le nouveau répertoire .platform/ comme nouvelle version de l'application dans votre environnement Elastic Beanstalk.

4.    Une fois le déploiement terminé, connectez-vous à l'instance exécutée dans l'environnement Elastic Beanstalk. Une fois connecté, vérifiez que les paramètres du serveur NGINX sont appliqués. Pour ce faire, utilisez la commande suivante :

$ 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;

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an