Come modificare nginx.conf per aumentare la dimensione del file di caricamento


106

Voglio aumentare il maximum file sizeche può essere caricato.
Dopo aver fatto alcune ricerche online, ho scoperto che devi modificare il file "nginx.conf".
L'unico modo in cui posso attualmente accedere a questo file è passare da Putty e digitare il comando:

vi /etc/nginx/nginx.conf

Questo aprirà il file ma ora ho 2 domande:

  1. Come modifico questo file?
  2. Ho scoperto online che devi aggiungere la seguente riga di codice:

client_max_body_size 8M;

Dove inserisco questa riga di codice nginx.conf?

Risposte:


200

Aggiungi client_max_body_size

Ora che stai modificando il file devi aggiungere la riga nel blocco del server, in questo modo;

server {
    client_max_body_size 8M;

    //other lines...
}

Se stai ospitando più siti, aggiungilo al contesto http in questo modo;

http {
    client_max_body_size 8M;

    //other lines...
}

E aggiorna anche il upload_max_filesizenel tuo file php.ini in modo da poter caricare file della stessa dimensione.

Risparmiare in Vi

Una volta che hai finito devi salvare, questo può essere fatto in vi premendo il esctasto e digitando :wqe tornando.

Riavvio di Nginx e PHP

Ora è necessario riavviare nginx e php per ricaricare le configurazioni. Questo può essere fatto usando i seguenti comandi;

sudo service nginx restart
sudo service php5-fpm restart

O qualunque sia il nome del tuo servizio php.


8
Potrebbe non essere una cattiva idea aggiungerlo al http {contesto in modo che tutti i server lo ereditino. E assicurati di regolare il tuo ingresso upload_max_filesizein modo php.iniche corrisponda all'impostazione di nginx. Se stai usando Laravel usando Homestead / Vagrant, quel file si trova in /etc/php5/fpm/php.ini.
damiani

Sì, ho dimenticato di dire che sto usando Laravel Homestead. Quindi ho aperto "/etc/php5/fpm/php.ini" e ho trovato la riga di codice "upload_max_filesize = 2M", quindi voglio cambiarla in modo che "2M" diventi "8M". Una volta apportata questa modifica, devo semplicemente premere "Ctrl Z" per uscire dal file e quindi eseguire "sudo service nging restart"?
Jeff P.

Non premi ctrl-z Devi salvarlo con vi premere esc quindi digitare: wq e premere invio.
Matt Burrow

2
Esci dall'editor, anteponi il comando vi con sudo. Così; sudo vi /etc/nginx/nginx.conf o sudo vi /etc/php5/fpm/php.ini
Matt Burrow

2
sudo nginx -s reloadricarica la configurazione senza riavviare nginx
Vincnetas

12

Nel caso in cui si stia utilizzando il proxy nginx come contenitore docker (ad esempio jwilder / nginx-proxy ), c'è il seguente modo per configurare client_max_body_size(o altre proprietà):

  1. Crea un file di configurazione personalizzato, ad esempio /etc/nginx/proxy.confcon un valore corretto per questa proprietà
  2. Quando si esegue un contenitore, aggiungerlo come volume, ad es -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

Personalmente ho trovato questo modo piuttosto conveniente in quanto non è necessario creare un contenitore personalizzato per modificare le configurazioni. Non sono affiliato jwilder/nginx-proxy, lo usavo solo nel mio progetto e il modo sopra descritto mi ha aiutato. Spero che aiuti anche qualcun altro.


1
Questo progetto correlato: github.com/evertramos/… (il nginx-proxy di jwilder combinato con la generazione di certificati da consente di crittografare) ha uno script pulito per farlo e ha questa opzione preconfigurata (a 100M). Crea il .env dall'esempio; rimuovere il commento dalla riga #USE_NGINX_CONF_FILES=true; corri start.she finalmente docker-compose up. (Non sono affiliato a nessuno dei due progetti).
glaux

3

Prima naviga nel percorso di php.ini

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

quindi, cambio successivo

upload_max_filesize = 999M
post_max_size = 999M

poi ESC-->:wq

Ora infine incolla questo comando,

sudo systemctl riavvia php7.2-fpm.service

hai fatto.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.