Я пытаюсь настроить Madsonic на своем Ubuntu box и запустить Nginx перед ним. Проблема в том, что я продолжаю получать это предупреждение при попытке загрузить материал через веб-интерфейс:
31115#0: *14 a client request body is buffered to a temporary file
Это также объясняет, почему индикаторы выполнения в окне загрузки не работают. Вот моя соответствующая конфигурация Nginx:
# 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;
}
Я использую Nginx 1.9.12 на данный момент.
Я хотел бы добиться, чтобы Nginx вообще не использовал буферы тела запроса и просто передавал тело запроса напрямую в Madsonic, независимо от его размера. Это вообще возможно? Если это так, какая будет правильная конфигурация?
Другие вопросы, кажется, получили ответы о способах установки размеров буфера. Я не хочу никаких буферов. Я хочу напрямую передать тело запроса в Madsonic.
nginx
reverse-proxy
buffer
радиан
источник
источник
Ответы:
У меня была такая же проблема при настройке прокси Nginx для реестра Docker. Я закончил тем, что сделал:
client_max_body_size
все еще должен был быть 0, чтобы предотвратить ошибку, ноwatch -n 1 du -hs .
ясно показал разницу. Буферизация заставила данные появиться после запроса, никакая буферизация не заставила их появиться во время запроса.proxy_http_version 1.1
необходимо из-за чанкованного кодирования. Цитата из документации Nginx:источник