Cara mengedit nginx.conf untuk meningkatkan ukuran file unggahan


106

Saya ingin meningkatkan maximum file sizeyang bisa diunggah.
Setelah melakukan beberapa penelitian online, saya menemukan bahwa Anda harus mengedit file 'nginx.conf'.
Satu-satunya cara saya saat ini mengakses file ini adalah dengan melalui Putty dan mengetikkan perintah:

vi /etc/nginx/nginx.conf

Ini akan membuka file tetapi saya punya 2 pertanyaan sekarang:

  1. Bagaimana cara mengedit file ini?
  2. Saya menemukan secara online bahwa Anda harus menambahkan baris kode berikut:

client_max_body_size 8M;

Di mana saya akan meletakkan baris kode ini nginx.conf?

Jawaban:


200

Tambahkan client_max_body_size

Sekarang setelah Anda mengedit file, Anda perlu menambahkan baris ke blok server, seperti;

server {
    client_max_body_size 8M;

    //other lines...
}

Jika Anda menghosting beberapa situs, tambahkan ke konteks http seperti;

http {
    client_max_body_size 8M;

    //other lines...
}

Dan juga perbarui upload_max_filesizefile php.ini Anda sehingga Anda dapat mengupload file dengan ukuran yang sama.

Menyimpan di Vi

Setelah selesai, Anda perlu menyimpan, ini dapat dilakukan di vi dengan menekan esctombol dan mengetik :wqdan kembali.

Memulai ulang Nginx dan PHP

Sekarang Anda perlu me-restart nginx dan php untuk memuat ulang konfigurasi. Ini dapat dilakukan dengan menggunakan perintah berikut;

sudo service nginx restart
sudo service php5-fpm restart

Atau apa pun nama layanan php Anda.


8
Mungkin bukan ide yang buruk untuk menambahkannya ke http {konteks sehingga semua server mewarisinya. Dan pastikan Anda menyesuaikan upload_max_filesizemasuk php.iniagar sesuai dengan pengaturan nginx Anda. Jika Anda menjalankan Laravel menggunakan Homestead / Vagrant, file itu terletak di /etc/php5/fpm/php.ini.
damiani

Ya, saya lupa menyebutkan bahwa saya menggunakan Laravel Homestead. Jadi saya membuka '/etc/php5/fpm/php.ini' dan menemukan baris kode 'upload_max_filesize = 2M', jadi saya ingin mengubahnya sehingga '2M' menjadi '8M'. Setelah saya melakukan pengeditan ini, apakah saya cukup menekan 'Ctrl Z' untuk keluar dari file dan kemudian menjalankan 'sudo service nging restart'?
Jeff P.

Anda tidak menekan ctrl-z Anda perlu menyimpannya dengan vi tekan esc lalu ketik: wq dan tekan enter.
Matt Burrow

2
Keluar dari editor, tambahkan perintah vi dengan sudo. Seperti itu; sudo vi /etc/nginx/nginx.conf atau sudo vi /etc/php5/fpm/php.ini
Matt Burrow

2
sudo nginx -s reloadmemuat ulang konfigurasi tanpa memulai ulang nginx
Vincnetas

12

Jika seseorang menggunakan nginx proxy sebagai container docker (mis. Jwilder / nginx-proxy ), ada cara berikut untuk mengkonfigurasi client_max_body_size(atau properti lain):

  1. Buat file konfigurasi kustom misalnya /etc/nginx/proxy.confdengan nilai yang tepat untuk properti ini
  2. Saat menjalankan wadah, tambahkan sebagai volume misalnya -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

Secara pribadi menemukan cara ini agak nyaman karena tidak perlu membangun wadah khusus untuk mengubah konfigurasi. Saya tidak berafiliasi dengan jwilder/nginx-proxy, hanya menggunakannya dalam proyek saya, dan cara yang dijelaskan di atas membantu saya. Semoga bisa membantu orang lain juga.


1
Proyek terkait ini: github.com/evertramos/… (nginx-proxy dari jwilder dikombinasikan dengan pembuatan sertifikat dari lets encrypt) memiliki skrip yang rapi untuk melakukan ini dan opsi ini telah dikonfigurasi sebelumnya (hingga 100M). Buat .env dari sampel; hapus komentar pada baris tersebut #USE_NGINX_CONF_FILES=true; lari start.shdan akhirnya docker-compose up. (Saya tidak berafiliasi dengan proyek mana pun).
glaux

3

Pertama Menavigasi Jalur php.ini

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

lalu, perubahan berikutnya

upload_max_filesize = 999M
post_max_size = 999M

kemudian ESC-->:wq

Sekarang Terakhir Tempel perintah ini,

sudo systemctl restart php7.2-fpm.service

kamu selesai.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.