У мене є досить великі і повільні (складні дані, складний інтерфейс) веб - додаток , побудувати в RoRобслуговуваних і Pumaз в nginxякості зворотного проксі - сервера. Переглядаючи nginxжурнал помилок, я бачу досить багато записів на кшталт:
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"
Я досить цікавий, оскільки дуже малоймовірно, що сторінка залишається однаковою для різних користувачів та різних взаємодій користувачів, і я не вважаю, що буферизація відповіді на диску є необхідною / корисною.
Я знаю про це proxy_max_temp_file_sizeі встановив його на 0, але мені це здається трохи незручним (мій проксі намагається створити буфер, але не має файлу, куди його буферувати ... як це може бути швидше?).
Мої запитання:
Як я можу видалити [попередження] та уникнути буферних відповідей? Краще вимкнути
proxy_bufferingабо встановитиproxy_max_temp_file_size0? Чому?Якщо
nginxбуферизує відповідь: Коли він подає буферизовану відповідь, кому і чому?Чому він
nginxвключаєтьсяproxy_bufferingза замовчуванням, а потім [попереджає] вас, якщо він насправді буферизує відповідь?Коли відповідь запускає цю опцію? Коли для отримання відповіді потрібно> кілька секунд (скільки?)? Це налаштовується?
ТІА, нгв.