Saya memiliki aplikasi web yang agak besar dan lambat (data kompleks, antarmuka rumit) dibangun RoR
dan dilayani Puma
dengan nginx
sebagai proxy terbalik. Melihat nginx
log kesalahan, saya melihat beberapa entri seperti:
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"
Saya agak ingin tahu karena sangat tidak mungkin bahwa halaman tetap sama untuk pengguna yang berbeda dan interaksi pengguna yang berbeda, dan saya tidak akan berpikir bahwa buffering respon pada disk diperlukan / berguna.
Saya tahu tentang proxy_max_temp_file_size
dan mengaturnya ke 0, tetapi bagi saya agak canggung (proxy saya mencoba untuk buffer tetapi tidak memiliki file di mana buffer ke ... bagaimana bisa lebih cepat?).
Pertanyaan saya adalah:
Bagaimana saya bisa menghapus [memperingatkan] dan menghindari tanggapan buffering? Apakah lebih baik mematikan
proxy_buffering
atau mengaturproxy_max_temp_file_size
ke 0? Mengapa?Jika
nginx
menyangga respons: Kapan respons melayani buffer, kepada siapa, dan mengapa?Mengapa
nginx
dihidupkanproxy_buffering
secara default dan kemudian [memperingatkan] apakah Anda benar-benar memberikan respons?Kapan respons memicu opsi itu? Kapan dibutuhkan> beberapa detik (berapa banyak?) Untuk melayani tanggapan? Apakah ini dapat dikonfigurasi?
TIA, ngw.