Saya mencoba mengatur Madsonic pada kotak Ubuntu saya dan menjalankan Nginx di depannya. Masalahnya adalah, saya terus mendapatkan peringatan ini ketika saya mencoba mengunggah barang melalui antarmuka web:
31115#0: *14 a client request body is buffered to a temporary file
Ini juga menjelaskan mengapa bilah progres di jendela unggah tidak berfungsi. Ini konfigurasi Nginx saya yang relevan:
# proxy the madsonic server here
location / {
proxy_pass https://madsonic-server/;
proxy_redirect off;
proxy_buffering off;
proxy_request_buffering off;
allow all;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
client_body_buffer_size 0;
client_max_body_size 0;
proxy_max_temp_file_size 0;
proxy_read_timeout 18000;
proxy_send_timeout 18000;
gzip off;
}
Saya menggunakan Nginx 1.9.12 saat ini.
Yang ingin saya capai adalah membuat Nginx tidak menggunakan buffer body permintaan sama sekali dan hanya mengirimkan body request langsung ke Madsonic, terlepas dari ukurannya. Apakah ini mungkin? Jika ya, konfigurasi apa yang benar?
Pertanyaan lain sepertinya dijawab dengan cara mengatur ukuran buffer. Saya tidak ingin buffer. Saya ingin langsung menyerahkan badan permintaan ke Madsonic.
Jawaban:
Saya memiliki masalah yang sama menyiapkan proxy Nginx untuk registri Docker. Saya akhirnya melakukan:
client_max_body_size
masih harus 0 untuk mencegah kesalahan, tetapiwatch -n 1 du -hs .
jelas menunjukkan perbedaan. Buffer membuat data muncul setelah permintaan, tidak ada buffering yang membuatnya muncul selama permintaan.proxy_http_version 1.1
diperlukan karena penyandian chunked. Kutipan dari dokumen Nginx:sumber