• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

an upstream response is buffered to a temporary file

开发技术 开发技术 3小时前 2次浏览

Solution 1:

1) How can I remove the [warn] and avoid buffering responses? Is it better to turn off proxy_buffering or set proxy_max_temp_file_size to 0? Why?

You should set proxy_max_temp_file_size to 0 in order to remove it. The proxy_buffering directive isn’t directly related to the warning. You can switch it off to stop any buffering at all but that isn’t recommended in general (unless it’s needed for Comet).

2) If nginx buffers a response when does it serve the buffered response, to whom and why?

It servers immediately, but a client usually has much slower connection and can’t consume the response data as fast as it produced by your application. Nginx tries to buffer the whole response in order to release your application ASAP.

 
 

See also: http://aosabook.org/en/nginx.html

3) Why nginx turns proxy_buffering on by default and then [warn]s you if it actually buffers a response?

As I already mentioned, the proxy_buffering isn’t directly related to the warning. It’s generally needed for optimized proxy operations and turning it off degrades performance and throughput.

Nginx only warns you when a response doesn’t fit into configured memory buffers. You may ignore the warning if it’s ok for you.

4) When does a response triggers that option? When it takes > than some seconds (how many?) to serve the response? Is this configurable?

It triggers when memory buffers are full. Please, look at the docs, the whole mechanism is explained: http://nginx.org/r/proxy_max_temp_file_size

You may want to increase memory buffers.

Solution 2:

The following configuration works fine on my server.

proxy_buffers 16 16k;  
proxy_buffer_size 16k;

程序员灯塔
转载请注明原文链接:an upstream response is buffered to a temporary file
喜欢 (0)