我有一个相当大的和缓慢的(复杂的数据,复杂的前端)的Web应用程序构建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"
Run Code Online (Sandbox Code Playgroud)
我很好奇,因为对于不同的用户和不同的用户交互,页面不太可能保持相同,而且我不认为在磁盘上缓冲响应是必要的/有用的。
我知道proxy_max_temp_file_size
并将其设置为 0,但在我看来有点尴尬(我的代理尝试缓冲但没有文件可以缓冲到...怎么能更快?)。
我的问题是:
如何删除 [warn] 并避免缓冲响应?关闭proxy_buffering
还是设置proxy_max_temp_file_size
为0更好?为什么?
如果nginx
缓冲响应:它什么时候提供缓冲响应,给谁,为什么?
为什么默认情况下nginx
打开proxy_buffering
然后[警告]如果它实际上缓冲了响应?
响应何时触发该选项?当需要> 几秒钟(多少?)来提供响应时?这个可以配置吗?
TIA,ngw。