J'ai une application Web plutôt volumineuse et lente (données complexes, interface complexe) intégrée RoR
et servie par Puma
avec nginx
un proxy inverse. En regardant le nginx
journal des erreurs, je vois quelques entrées comme:
2014/04/08 09:46:08 [warn] 20058#0: *819237 an upstream response is buffered to a temporary file
/var/lib/nginx/proxy/8/47/0000038478 while reading upstream,
client: 5.144.169.242, server: engagement-console.foo.it,
request: "GET /elements/pending?customer_id=2&page=2 HTTP/1.0",
upstream: "http://unix:///home/deployer/apps/conversationflow/shared/sockets/puma.sock:/elements/pending?customer_id=2&page=2",
host: "ec.reputationmonitor.it",
referrer: "http://ec.foo.it/elements/pending?customer_id=2&page=3"
Je suis plutôt curieux car il est très peu probable que la page reste la même pour différents utilisateurs et interactions d'utilisateur, et je ne penserais pas que la mise en mémoire tampon de la réponse sur le disque soit nécessaire / utile.
Je sais proxy_max_temp_file_size
et le mettre à 0, mais cela me semble un peu gênant (mon proxy essaie de tamponner mais n’a aucun fichier où tamponner ... comment cela peut-il être plus rapide?).
Mes questions sont:
Comment puis-je supprimer le [avertir] et éviter la mise en mémoire tampon des réponses? Est-il préférable d'éteindre
proxy_buffering
ou de mettreproxy_max_temp_file_size
à 0? Pourquoi?Si
nginx
la réponse en mémoire tampon est une réponse: Quand sert-il la réponse en mémoire tampon, à qui et pourquoi?Pourquoi est-il
nginx
activéproxy_buffering
par défaut, puis [averti] si vous mettez une réponse en mémoire tampon?Quand une réponse déclenche-t-elle cette option? Quand cela prend> quelques secondes (combien?) Pour servir la réponse? Est-ce configurable?
TIA, ngw.