Saya mendapatkan kesalahan berikut dalam file log saya setiap kali saya mencoba mengunggah file besar.
a client request body is buffered to a temporary file /var/lib/nginx/body/0000000001
Meskipun file berhasil diunggah, saya selalu mendapatkan kesalahan di atas.
Aku meningkatkan client_body_buffer_size
untuk 1000m
yang adalah apa yang saya harapkan file terbesar upload untuk menjadi. Namun, ini hanya dugaan dan meskipun saya tidak mendapatkan kesalahan itu lagi saya bertanya-tanya apakah ini nilai yang sesuai untuk ditetapkan client_body_buffer_size
?
Saya akan sangat menghargai jika ada yang bisa menjelaskan arahan ini dan bagaimana harus digunakan.
Jawaban:
Ini peringatan, bukan kesalahan. Itu sebabnya itu diawali dengan
[warn]
dalam log.Ini berarti bahwa ukuran file yang diunggah lebih besar daripada buffer di dalam memori yang disediakan untuk unggahan.
Arahan
client_body_buffer_size
mengontrol ukuran buffer itu.Jika Anda mampu memiliki 1GB RAM yang selalu disediakan untuk unggahan file sesekali, maka itu tidak masalah. Ini adalah pengoptimalan kinerja untuk buffer unggahan dalam RAM daripada dalam file sementara pada disk, meskipun dengan unggahan besar beberapa detik tambahan mungkin tidak terlalu menjadi masalah. Jika sebagian besar unggahan Anda kecil, maka itu mungkin sia-sia.
Pada akhirnya, hanya Anda yang benar-benar dapat memutuskan ukuran yang tepat.
sumber
Jika Anda tidak ingin menyimpan konten tubuh NginX dalam file sementara, Anda dapat mengatur konfigurasi Anda. seperti ini:
Jika Anda mengatur kedua konfigurasi ini pada maks yang sama. ukuran (dalam k, M atau G untuk kB, MB atau GB, masing-masing), Anda akan mencegah NginX membuat temp. mengajukan.
Untuk info lebih lanjut: http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size dan http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
sumber
client_max_body_size
parameternya. Lihat info di tautan ini: client_max_body_size doc. :Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size.