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