comparison src/http/ngx_http_copy_filter_module.c @ 6250:0256738454dc

Increased the default number of output buffers. Since an output buffer can only be used for either reading or sending, small amounts of data left from the previous operation (due to some limits) must be sent before nginx will be able to read further into the buffer. Using only one output buffer can result in suboptimal behavior that manifests itself in forming and sending too small chunks of data. This is particularly painful with SPDY (or HTTP/2) where each such chunk needs to be prefixed with some header. The default flow-control window in HTTP/2 is 64k minus one bytes. With one 32k output buffer this results is one byte left after exhausting the window. With two 32k buffers the data will be read into the second free buffer before sending, thus the minimum output is increased to 32k + 1 bytes which is much better.
author Valentin Bartenev <vbart@nginx.com>
date Tue, 15 Sep 2015 17:49:15 +0300
parents 1fdba317ee6d
children c5f81dcf97a7
comparison
equal deleted inserted replaced
6249:081a073e5164 6250:0256738454dc
325 ngx_http_copy_filter_merge_conf(ngx_conf_t *cf, void *parent, void *child) 325 ngx_http_copy_filter_merge_conf(ngx_conf_t *cf, void *parent, void *child)
326 { 326 {
327 ngx_http_copy_filter_conf_t *prev = parent; 327 ngx_http_copy_filter_conf_t *prev = parent;
328 ngx_http_copy_filter_conf_t *conf = child; 328 ngx_http_copy_filter_conf_t *conf = child;
329 329
330 ngx_conf_merge_bufs_value(conf->bufs, prev->bufs, 1, 32768); 330 ngx_conf_merge_bufs_value(conf->bufs, prev->bufs, 2, 32768);
331 331
332 return NULL; 332 return NULL;
333 } 333 }
334 334
335 335