Quand Nginx est utilisé comme serveur principal pour les applications Web telles que WordPress , Drupal , etc . (qui sont généralement basés sur PHP et MySQL Database), de nombreux utilisateurs rencontrent l'erreur :"413 - Request Entity Too Large '.
Cette erreur se produit chaque fois qu'un utilisateur essaie de télécharger un fichier dont la taille est supérieure à la taille de fichier de téléchargement maximale configurée. La limite par défaut pour la taille de téléchargement des fichiers est de 1 Mo tel que défini dans le Nginx configuration.
[ Vous pourriez également aimer :Comment réparer le délai d'expiration de la passerelle 504 dans le serveur Nginx ]
Habituellement, cette erreur est rencontrée par un WordPress admin essayant d'installer un plugin pour la première fois. Par exemple, j'ai essayé d'installer le 'Gestionnaire de téléchargement ' WordPress plugin sur ma configuration WP locale, il me donne la même erreur :
Modifier la limite de taille du fichier de téléchargement dans Nginx
Ouvrez le Nginx fichier de configuration dans Vim ou tout éditeur de texte de votre choix.
$ sudo vim /etc/nginx/nginx.conf
Ajoutez la directive 'client_max_body_size ‘. Cette directive définit la taille maximale du corps d'une requête client. Par défaut, la valeur de cette directive est 1 Mo . L'augmentation de cette valeur vous permettra de télécharger un fichier de plus grande taille qui est envoyé avec la demande.
Ajoutez la ligne suivante sous ‘http’ bloquer :
client_max_body_size 16M;
Vous pouvez même mettre un nombre plus élevé au lieu de 16 Mo si nécessaire. Maintenant, enregistrez et fermez le fichier.
Redémarrez Nginx avec la commande suivante.
$ sudo systemctl restart nginx
Maintenant votre Nginx la configuration vous permettra de télécharger un fichier jusqu'à 16 Mo en taille. Essayons d'installer à nouveau le plugin.
Même après avoir configuré la taille du fichier Nginx, la limite de téléchargement de fichiers PHP bloque toujours le téléchargement. Voyons comment le changer.
Modifier la limite de taille de téléchargement PHP
Nginx est utilisé conjointement avec des applications Web basées sur PHP, et le problème présenté ci-dessus peut survenir en raison d'une limite de taille de téléchargement de fichier PHP.
Ouvrez le fichier 'php.ini ‘ qui est présent dans le répertoire de configuration de PHP.
$ sudo vim /etc/php/7.4/fpm/php.ini OR $ sudo vim /etc/php.ini
Allez dans les variables upload_file_maxsize , c'est-à-dire la taille maximale d'un fichier qui peut être téléchargé, et post_maxsize , c'est-à-dire la taille maximale d'une demande de publication.
Lorsqu'un fichier est téléchargé dans le cadre de la demande de publication, post_maxsize doit toujours être supérieur à upload_file_maxsize .
Modifiez les valeurs si nécessaire.
upload_max_filesize = 16M post_max_size = 20M
Enregistrez et quittez le fichier.
Redémarrez PHP , ainsi que Nginx , pour que la nouvelle configuration ait lieu :
$ sudo systemctl restart php7.4-fpm $ sudo systemctl restart nginx
Vous devez remplacer php7.4 dans la commande ci-dessus avec quelle que soit votre version de PHP, ou même simplement "php ' s'il s'agit du nom du service PHP sur votre ordinateur.
La taille de fichier nouvellement spécifiée est désormais autorisée pour le téléchargement de fichiers dans l'application Web, et le plug-in procède à l'installation avec succès.
Conclusion
Nous avons vu comment traiter le problème d'une entité de requête trop volumineuse dans une application Web basée sur Nginx. Notez que non seulement PHP, mais si d'autres CGI sont utilisés avec Nginx, le problème peut survenir ; auquel cas les utilisateurs peuvent augmenter la limite dans le fichier de configuration pour le CGI particulier.
Merci d'avoir lu et faites-nous part de vos réflexions dans les commentaires ci-dessous !