J'ai une application web assez grande et lente (données complexes, front-end complexe) construite en RoR
et servi par Puma
con nginx
comme mandataire inverse. En regardant le nginx
journal des erreurs, je vois plusieurs 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 différentes interactions avec eux, et je ne pense pas que la mise en mémoire tampon de la réponse sur le disque soit nécessaire/utile.
Je suis au courant proxy_max_temp_file_size
et de le mettre à 0, mais cela me semble un peu maladroit (mon proxy essaie de buffer mais n'a pas de fichier où buffer... comment cela peut-il être plus rapide ?).
Mes questions sont les suivantes :
-
Comment puis-je supprimer le [warn] et éviter la mise en mémoire tampon des réponses ? Est-il préférable de désactiver
proxy_buffering
ou pour réglerproxy_max_temp_file_size
à 0 ? Pourquoi ? -
Si
nginx
met en mémoire tampon une réponse : Quand sert-il la réponse mise en mémoire tampon, à qui, et pourquoi ? -
Pourquoi
nginx
tourneproxy_buffering
activé par défaut et qui vous avertit s'il met en mémoire tampon une réponse ? -
Quand une réponse déclenche-t-elle cette option ? Lorsqu'il faut > quelques secondes (combien ?) pour servir la réponse ? Est-ce que cela est configurable ?
TIA, ngw.