Comment augmenter la taille de téléchargement de fichiers dans Nginx ?

Publié 13 octobre 2024

Problème : Limitations de taille des fichiers envoyés dans Nginx

Nginx, un serveur web, a par défaut des limites de taille pour les fichiers envoyés qui peuvent empêcher le transfert de gros fichiers. Cette limite peut poser problème lors de l'envoi de documents volumineux, fichiers médias ou jeux de données via des applications web sur des serveurs Nginx.

Localisation du fichier de configuration Nginx

Emplacements courants du fichier de configuration Nginx

Le fichier de configuration Nginx se trouve généralement à l'un de ces emplacements :

  • /etc/nginx/nginx.conf
  • /usr/local/nginx/conf/nginx.conf

Ce sont les chemins standards pour le fichier de configuration principal de Nginx. L'emplacement exact peut varier selon la méthode d'installation de Nginx et votre système d'exploitation.

Conseil: Vérifier le gestionnaire de paquets

Si vous avez installé Nginx via un gestionnaire de paquets comme apt ou yum, vous pouvez souvent trouver l'emplacement du fichier de configuration en vérifiant les informations du paquet. Par exemple, sur les systèmes Ubuntu ou Debian, vous pouvez utiliser :

dpkg -L nginx | grep nginx.conf

Cette commande liste tous les fichiers installés par le paquet Nginx et filtre pour le fichier nginx.conf.

Dépannage en cas de fichiers de configuration manquants

Si vous ne trouvez pas le fichier de configuration Nginx aux endroits habituels, essayez ces étapes :

  1. Vérifier l'installation de Nginx : Exécutez nginx -v pour vérifier si Nginx est installé et voir sa version.

  2. Utiliser des outils en ligne de commande pour chercher les fichiers de config :

    • Rechercher nginx.conf :
      sudo find / -name nginx.conf
    • Chercher tout fichier contenant "nginx" dans son nom :
      sudo find / -name "*nginx*"

Si ces étapes ne vous aident pas à trouver le fichier de configuration, il est possible que Nginx ne soit pas installé sur votre système ou qu'il se trouve dans un emplacement non standard.

Modification des paramètres Nginx pour augmenter la taille d'envoi

Édition du fichier de configuration Nginx

Pour augmenter la limite de taille des fichiers envoyés dans Nginx, vous devez modifier le fichier de configuration Nginx :

  1. Ouvrez le fichier de configuration avec un éditeur de texte :

    sudo nano /etc/nginx/nginx.conf

    Utilisez le chemin correct si votre fichier de configuration est à un autre emplacement.

  2. Trouvez la section à modifier. Vous pouvez placer la directive client_max_body_size dans le contexte http, server ou location. Elle se trouve souvent dans le bloc server.

Ajustement du paramètre client_max_body_size

Pour modifier la taille maximale autorisée du corps de la requête client :

  1. Ajoutez ou modifiez la directive client_max_body_size :

    client_max_body_size 100M;

    Cela fixe la taille maximale d'envoi à 100 mégaoctets. Changez cette valeur selon vos besoins.

  2. Si la directive existe déjà, modifiez sa valeur. Sinon, ajoutez la ligne dans la bonne section de votre fichier de configuration.

  3. Utilisez M pour les mégaoctets ou G pour les gigaoctets. N'utilisez pas MB ou GB car cela ne fonctionnera pas.

  4. Vous pouvez définir des limites différentes pour différents emplacements :

    location /upload {
       client_max_body_size 500M;
    }

    Cela fixe une limite de 500 Mo pour l'emplacement /upload.

  5. Sauvegardez les modifications et quittez l'éditeur de texte.

Testez votre configuration et rechargez Nginx après avoir effectué ces changements. Assurez-vous que vos paramètres PHP (le cas échéant) correspondent à votre nouvelle limite de taille d'envoi Nginx.

Conseil: Vérifier les paramètres d'envoi PHP

Si vous utilisez PHP avec Nginx, n'oubliez pas d'ajuster également les paramètres d'envoi de PHP. Modifiez votre fichier php.ini et changez ces valeurs :

upload_max_filesize = 100M
post_max_size = 100M

Remplacez 100M par la limite souhaitée. Redémarrez PHP-FPM après avoir effectué ces modifications.

Test et application de la nouvelle configuration

Vérification de la syntaxe de la configuration Nginx

Après avoir modifié le fichier de configuration Nginx, vérifiez l'absence d'erreurs de syntaxe avant d'appliquer les changements. Utilisez cette commande pour vérifier la configuration :

sudo nginx -t

Cette commande teste les fichiers de configuration Nginx et signale les erreurs. Si le test réussit, vous verrez un message indiquant que le test de configuration est réussi et que la syntaxe est correcte.

En cas d'erreurs, la commande affichera des détails sur le problème et son emplacement dans le fichier de configuration. Corrigez ces erreurs avant de continuer.

Conseil: Sauvegardez votre configuration

Avant de modifier votre configuration Nginx, créez une sauvegarde de votre fichier de configuration actuel. Cela vous permettra de revenir rapidement en arrière si nécessaire :

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

Rechargement ou redémarrage de Nginx

Une fois que vous avez confirmé que la syntaxe de la configuration est correcte, appliquez les nouveaux paramètres. Il existe deux méthodes principales :

  1. Recharger Nginx : Cette méthode n'interrompt pas les connexions actives. Utilisez cette commande :

    sudo nginx -s reload

    Ou, si vous utilisez systemd :

    sudo systemctl reload nginx
  2. Redémarrer Nginx : Si un rechargement n'applique pas tous les changements, vous devrez peut-être redémarrer Nginx. Cela interrompra toutes les connexions actives :

    sudo systemctl restart nginx

Après avoir rechargé ou redémarré Nginx, la nouvelle limite de taille des fichiers envoyés devrait être active. Testez votre fonction d'envoi de fichiers pour confirmer que des fichiers plus volumineux peuvent désormais être envoyés.

Surveillez les performances de votre serveur après avoir augmenté la limite de taille d'envoi, car la gestion d'envois de fichiers plus volumineux peut nécessiter plus de ressources serveur.