Tôi có một (dữ liệu phức tạp, phức tạp frontend) khá lớn và chậm ứng dụng web xây dựng trong RoR
và phục vụ bởi Puma
với nginx
proxy ngược lại. Nhìn vào nginx
nhật ký lỗi, tôi thấy khá nhiều mục như:
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"
Tôi khá tò mò vì rất có thể trang này vẫn giống nhau cho những người dùng khác nhau và các tương tác người dùng khác nhau và tôi không nghĩ rằng việc đệm phản hồi trên đĩa là cần thiết / hữu ích.
Tôi biết proxy_max_temp_file_size
và đặt nó về 0, nhưng có vẻ hơi khó xử (proxy của tôi cố gắng đệm nhưng không có tệp nào để đệm đến ... làm sao có thể nhanh hơn?).
Câu hỏi của tôi là:
Làm cách nào tôi có thể xóa [cảnh báo] và tránh phản hồi đệm? Là tốt hơn để tắt
proxy_buffering
hoặc đặtproxy_max_temp_file_size
thành 0? Tại sao?Nếu
nginx
bộ đệm một phản hồi: Khi nào nó phục vụ phản hồi được đệm, cho ai và tại sao?Tại sao
nginx
bậtproxy_buffering
theo mặc định và sau đó [cảnh báo] nếu bạn thực sự đệm phản hồi?Khi nào một phản ứng kích hoạt tùy chọn đó? Khi phải mất> vài giây (bao nhiêu?) Để phục vụ phản hồi? Đây có phải là cấu hình?
TIA, ngw.