Estou tentando configurar o Madsonic na minha caixa do Ubuntu e ter o Nginx na frente dele. O problema é que continuo recebendo esse aviso quando tento fazer upload de coisas pela interface da web:
31115#0: *14 a client request body is buffered to a temporary file
Isso também explica por que as barras de progresso na janela de upload não funcionam. Aqui está minha configuração relevante do 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;
}
Estou usando o Nginx 1.9.12 no momento.
O que eu gostaria de conseguir é fazer com que o Nginx não use buffers do corpo da solicitação e apenas passe o corpo da solicitação diretamente para o Madsonic, independentemente do tamanho. Isso é possível? Se for, qual seria a configuração correta?
Outras perguntas parecem ser respondidas com maneiras de definir os tamanhos do buffer. Eu não quero nenhum amortecedor. Eu quero passar diretamente o corpo da solicitação para Madsonic.
Respostas:
Eu tive o mesmo problema ao configurar um proxy Nginx para um registro do Docker. Acabei fazendo:
client_max_body_size
ainda precisava ser 0 para evitar o erro, maswatch -n 1 du -hs .
mostrava claramente uma diferença. O buffer fez os dados aparecerem após a solicitação, nenhum buffer fez aparecer durante a solicitação.proxy_http_version 1.1
é necessário devido à codificação em pedaços. Citação dos documentos do Nginx:fonte