Comment modifier nginx.conf pour augmenter le téléchargement de la taille du fichier

106

Je souhaite augmenter le nombre de maximum file sizetéléchargements.
Après avoir fait quelques recherches en ligne, j'ai trouvé que vous deviez éditer le fichier «nginx.conf».
La seule façon dont je peux actuellement accéder à ce fichier est de passer par Putty et de saisir la commande:

vi /etc/nginx/nginx.conf

Cela ouvrira le fichier mais j'ai 2 questions maintenant:

  1. Comment modifier ce fichier?
  2. J'ai trouvé en ligne que vous devez ajouter la ligne de code suivante:

client_max_body_size 8M;

Où placerais-je cette ligne de code nginx.conf?

Jeff P.
la source

Réponses:

200

Ajouter client_max_body_size

Maintenant que vous éditez le fichier, vous devez ajouter la ligne dans le bloc serveur, comme ceci;

server {
    client_max_body_size 8M;

    //other lines...
}

Si vous hébergez plusieurs sites, ajoutez-le au contexte http comme ceci;

http {
    client_max_body_size 8M;

    //other lines...
}

Et mettez également à jour le upload_max_filesizedans votre fichier php.ini afin de pouvoir télécharger des fichiers de la même taille.

Enregistrer dans Vi

Une fois que vous avez terminé, vous devez enregistrer, cela peut être fait dans vi en appuyant sur la esctouche et en tapant :wqet en revenant.

Redémarrer Nginx et PHP

Vous devez maintenant redémarrer nginx et php pour recharger les configurations. Cela peut être fait en utilisant les commandes suivantes;

sudo service nginx restart
sudo service php5-fpm restart

Ou quel que soit le nom de votre service php.

Matt Burrow
la source
8
Ce n'est peut-être pas une mauvaise idée de l'ajouter au http {contexte afin que tous les serveurs en héritent. Et assurez-vous que vous ajustez votre upload_max_filesizein php.inipour correspondre à votre paramètre nginx. Si vous exécutez Laravel en utilisant Homestead / Vagrant, ce fichier se trouve à /etc/php5/fpm/php.ini.
damiani
Oui, j'ai oublié de mentionner que j'utilise Laravel Homestead. J'ai donc ouvert '/etc/php5/fpm/php.ini' et j'ai trouvé la ligne de code 'upload_max_filesize = 2M', donc je veux le changer pour que '2M' devienne '8M'. Une fois que j'ai effectué cette modification, est-ce que je viens de cliquer sur «Ctrl Z» pour quitter le fichier, puis exécuter «sudo service nging restart»?
Jeff P.
Vous n'appuyez pas sur ctrl-z Vous devez l'enregistrer avec vi, appuyez sur échap puis tapez: wq et appuyez sur Entrée.
Matt Burrow
2
Sortez de l'éditeur, ajoutez la commande vi avec sudo. Ainsi; sudo vi /etc/nginx/nginx.conf ou sudo vi /etc/php5/fpm/php.ini
Matt Burrow
2
sudo nginx -s reloadrecharge la configuration sans redémarrer nginx
Vincnetas
12

Dans le cas où l'on utilise le proxy nginx comme conteneur de docker (par exemple jwilder / nginx-proxy ), il existe la manière suivante de configurer client_max_body_size(ou d'autres propriétés):

  1. Créez un fichier de configuration personnalisé, par exemple /etc/nginx/proxy.confavec une valeur correcte pour cette propriété
  2. Lors de l'exécution d'un conteneur, ajoutez-le en tant que volume, par exemple -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

Personnellement trouvé cette méthode plutôt pratique car il n'est pas nécessaire de créer un conteneur personnalisé pour modifier les configurations. Je ne suis pas affilié jwilder/nginx-proxy, je l'utilisais simplement dans mon projet et la manière décrite ci-dessus m'a aidé. J'espère que cela aide aussi quelqu'un d'autre.

Vladimir Salin
la source
1
Ce projet connexe: github.com/evertramos/… (le proxy nginx de jwilder combiné avec la génération de certificat de lets encrypt) a un script soigné pour faire cela et a cette option préconfigurée (à 100M). Créez le .env à partir de l'exemple; décommentez la ligne #USE_NGINX_CONF_FILES=true; courir start.shet enfin docker-compose up. (Je ne suis affilié à aucun projet).
glaux
3

Naviguez d'abord sur le chemin de php.ini

sudo vi /etc/php/7.2/fpm/php.ini

puis, prochain changement

upload_max_filesize = 999M
post_max_size = 999M

puis ESC-->:wq

Maintenant, collez enfin cette commande,

sudo systemctl redémarrer php7.2-fpm.service

vous avez terminé.

Vasu Patel
la source
2

Vous pouvez augmenter client_max_body_size et upload_max_filesize + post_max_size toute la journée. Sans ajuster le délai d'expiration HTTP, cela ne fonctionnera jamais.

// Vous devez ajuster cela, et probablement aussi du côté de PHP. client_body_timeout 2min // 1 Go de téléchargement de fichier

Humain numérique
la source
Plus d'informations sur la mise au point de votre serveur Web ici: doc.owncloud.com/server/admin_manual/configuration/files/…
Digital Human