Nginx proxy buffer相关的设置和解释

proxy_buffer_size 4k;

proxy_buffering on;

proxy_buffers 4 4k;

proxy_busy_buffers_size 8k;

proxy_max_temp_file_size 1024m;

首先,这些参数都是针对每一个http request ,不是全局的。

proxy_buffering 开启的时候,proxy_buffers 和proxy_busy_buffers_size 才会起作用,无论proxy_buffering 是否开启,proxy_buffer_size 都起作用。

proxy_buffer_size 用来接受后端服务器 response 的第一部分,小的response header 通常位于这部分响应内容里边。默认proxy_buffer_size 被设置成 proxy_buffers 里一个buffer 的大小,当然可以设置更小些

如果 proxy_buffers 关闭,Nginx不会尝试获取到后端服务器所有响应数据之后才返回给客户端,Nginx 会尽快把数据传给客户端,在数据传完之前,Nginx 接收到的最大缓存大小不能超过 proxy_buffer_size 。

如果 proxy_buffers 打开,Nginx将会尽可能的读取后端服务器的数据到buffer,直到proxy_buffers设置的所有buffer们被写满或者数据被读取完(EOF),此时Nginx开始向客户端传输数据,会同时传输这一整串buffer们。如果数据很大的话,Nginx会接收并把他们写入到temp_file里去,大小由proxy_max_temp_file_size 控制

proxy_buffers的缓冲区大小一般会设置的比较大,以应付大网页。而proxy_buffer_size只是响应头的缓冲区,没有必要也跟着

扩展到那么大。所以proxy_buffer_size最好单独设置,一般设置个4k就够了