Eu tenho um pouco grandes e lentas (dados complexos, complexo frontend) aplicação web construir em RoR
e servidos por Puma
com nginx
proxy como inversa. Observando o nginx
log de erros, vejo algumas entradas como:
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"
Estou bastante curioso, pois é muito improvável que a página permaneça a mesma para diferentes usuários e diferentes interações, e eu não acho que o buffer da resposta no disco seja necessário / útil.
Eu conheço proxy_max_temp_file_size
e defini-lo como 0, mas me parece um pouco estranho (meu proxy tenta armazenar em buffer, mas não tem nenhum arquivo para armazenar em buffer ... como isso pode ser mais rápido?).
Minhas perguntas são:
Como posso remover o [aviso] e evitar respostas do buffer? É melhor desligar
proxy_buffering
ou definirproxy_max_temp_file_size
como 0? Por quê?Se
nginx
uma resposta é armazenada em buffer: quando ela serve a resposta em buffer, para quem e por quê?Por que
nginx
ligaproxy_buffering
por padrão e depois avisa se ele realmente armazena uma resposta?Quando uma resposta aciona essa opção? Quando leva alguns segundos (quantos?) Para servir a resposta? Isso é configurável?
TIA, agora.