J'essaie de configurer Madsonic sur ma boîte Ubuntu et de faire tourner Nginx devant. Le problème est que je reçois toujours cet avertissement lorsque j'essaie de télécharger des trucs via l'interface Web:
31115#0: *14 a client request body is buffered to a temporary file
Cela explique également pourquoi les barres de progression dans la fenêtre de téléchargement ne fonctionnent pas. Voici ma configuration Nginx pertinente:
# 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;
}
J'utilise Nginx 1.9.12 en ce moment.
Ce que j'aimerais réaliser, c'est de faire en sorte que Nginx n'utilise pas du tout les tampons de corps de requête et qu'il passe simplement le corps de requête directement à Madsonic, quelle que soit sa taille. Est-ce seulement possible? Si tel est le cas, quelle serait la configuration correcte?
D'autres questions semblent obtenir des réponses sur la façon de définir les tailles de mémoire tampon. Je ne veux pas de tampons. Je veux transmettre directement le corps de la demande à Madsonic.
Réponses:
J'ai eu le même problème lors de la configuration d'un proxy Nginx pour un registre Docker. J'ai fini par faire:
client_max_body_size
devait encore être 0 pour éviter l'erreur, mais awatch -n 1 du -hs .
clairement montré une différence. La mise en mémoire tampon a fait apparaître les données après la demande, aucune mise en mémoire tampon n'a fait apparaître pendant la demande.proxy_http_version 1.1
est nécessaire en raison du codage en morceaux. Citation des documents Nginx:la source