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?

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.


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.


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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.