Jak edytować plik nginx.conf, aby zwiększyć przesyłanie rozmiaru pliku

106

Chcę zwiększyć maximum file sizeliczbę przesyłanych plików.
Po przeprowadzeniu pewnych badań online stwierdziłem, że musisz edytować plik „nginx.conf”.
Jedynym sposobem, w jaki mogę obecnie uzyskać dostęp do tego pliku, jest przejście przez Putty i wpisanie polecenia:

vi /etc/nginx/nginx.conf

Spowoduje to otwarcie pliku, ale mam teraz 2 pytania:

  1. Jak edytować ten plik?
  2. Znalazłem online, że musisz dodać następujący wiersz kodu:

client_max_body_size 8M;

Gdzie umieścić ten wiersz kodu nginx.conf?

Jeff P.
źródło

Odpowiedzi:

200

Dodaj client_max_body_size

Teraz, gdy edytujesz plik, musisz dodać linię do bloku serwera, na przykład;

server {
    client_max_body_size 8M;

    //other lines...
}

Jeśli hostujesz wiele witryn, dodaj go do kontekstu http w ten sposób;

http {
    client_max_body_size 8M;

    //other lines...
}

Zaktualizuj także upload_max_filesizeplik php.ini, aby móc przesyłać pliki o tym samym rozmiarze.

Zapisywanie w Vi

Gdy skończysz, musisz zapisać, można to zrobić w vi, naciskając escklawisz oraz wpisując :wqi powracając.

Ponowne uruchamianie Nginx i PHP

Teraz musisz ponownie uruchomić nginx i php, aby ponownie załadować konfiguracje. Można to zrobić za pomocą następujących poleceń;

sudo service nginx restart
sudo service php5-fpm restart

Albo jak nazywa się twoja usługa php.

Matt Burrow
źródło
8
Może nie być złym pomysłem dodanie go do http {kontekstu, aby wszystkie serwery go odziedziczyły. I upewnij się, że dostosowałeś swój upload_max_filesizein, php.iniaby pasował do ustawień nginx. Jeśli używasz Laravela przy użyciu Homestead / Vagrant, ten plik znajduje się pod adresem /etc/php5/fpm/php.ini.
damiani
Tak, zapomniałem wspomnieć, że używam Laravel Homestead. Więc otworzyłem „/etc/php5/fpm/php.ini” i znalazłem wiersz kodu „upload_max_filesize = 2M”, więc chcę go zmienić tak, aby „2M” stało się „8M”. Czy po dokonaniu tej edycji po prostu wciskam „Ctrl Z”, aby wyjść z pliku, a następnie uruchamiam „usługę sudo nging restart”?
Jeff P.
Nie wciskasz ctrl-z Musisz go zapisać za pomocą vi naciśnij esc, a następnie wpisz: wq i naciśnij enter.
Matt Burrow
2
Wyjdź z edytora, dołącz polecenie vi do sudo. Tak jak tak; sudo vi /etc/nginx/nginx.conf lub sudo vi /etc/php5/fpm/php.ini
Matt Burrow
2
sudo nginx -s reloadprzeładowuje konfigurację bez ponownego uruchamiania nginx
Vincnetas
12

W przypadku, gdy używa się proxy nginx jako kontenera docker (np. Jwilder / nginx-proxy ), istnieje następujący sposób konfiguracji client_max_body_size(lub innych właściwości):

  1. Utwórz niestandardowy plik konfiguracyjny, np. /etc/nginx/proxy.confZ odpowiednią wartością dla tej właściwości
  2. Prowadząc kontener, dodaj go jako objętość np -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

Osobiście uważam, że ten sposób jest raczej wygodny, ponieważ nie ma potrzeby tworzenia niestandardowego kontenera do zmiany konfiguracji. Nie jestem z nim związany jwilder/nginx-proxy, po prostu używałem go w swoim projekcie, a sposób opisany powyżej pomógł mi. Mam nadzieję, że pomoże to też komuś innemu.

Vladimir Salin
źródło
1
Ten powiązany projekt: github.com/evertramos/… (nginx-proxy z jwilder w połączeniu z generowaniem certyfikatu z lets encrypt) ma zgrabny skrypt, który to robi i ma wstępnie skonfigurowaną tę opcję (do 100M). Utwórz plik .env z próbki; odkomentuj linię #USE_NGINX_CONF_FILES=true; biegnij start.shi wreszcie docker-compose up. (Nie jestem powiązany z żadnym projektem).
glaux
3

Najpierw przejdź do ścieżki pliku php.ini

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

potem następna zmiana

upload_max_filesize = 999M
post_max_size = 999M

następnie ESC-->:wq

Teraz na koniec wklej to polecenie,

sudo systemctl zrestartuj php7.2-fpm.service

gotowe.

vasu patel
źródło
2

Możesz zwiększać client_max_body_size i upload_max_filesize + post_max_size przez cały dzień. Bez dostosowania limitu czasu HTTP to nigdy nie zadziała.

// Musisz to dostosować i prawdopodobnie także po stronie PHP. client_body_timeout 2min // przesyłanie pliku 1 GB

Cyfrowy człowiek
źródło
Więcej informacji na temat ulepszania serwera WWW: doc.owncloud.com/server/admin_manual/configuration/files/ ...
Digital Human