|
|
|
|
@ -180,6 +180,13 @@ static ngx_command_t ngx_http_uwsgi_commands[] = { |
|
|
|
|
offsetof(ngx_http_uwsgi_loc_conf_t, upstream.buffering), |
|
|
|
|
NULL }, |
|
|
|
|
|
|
|
|
|
{ ngx_string("uwsgi_request_buffering"), |
|
|
|
|
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
|
|
|
|
ngx_conf_set_flag_slot, |
|
|
|
|
NGX_HTTP_LOC_CONF_OFFSET, |
|
|
|
|
offsetof(ngx_http_uwsgi_loc_conf_t, upstream.request_buffering), |
|
|
|
|
NULL }, |
|
|
|
|
|
|
|
|
|
{ ngx_string("uwsgi_ignore_client_abort"), |
|
|
|
|
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
|
|
|
|
ngx_conf_set_flag_slot, |
|
|
|
|
@ -672,6 +679,13 @@ ngx_http_uwsgi_handler(ngx_http_request_t *r) |
|
|
|
|
u->pipe->input_filter = ngx_event_pipe_copy_input_filter; |
|
|
|
|
u->pipe->input_ctx = r; |
|
|
|
|
|
|
|
|
|
if (!uwcf->upstream.request_buffering |
|
|
|
|
&& uwcf->upstream.pass_request_body |
|
|
|
|
&& !r->headers_in.chunked) |
|
|
|
|
{ |
|
|
|
|
r->request_body_no_buffering = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
rc = ngx_http_read_client_request_body(r, ngx_http_upstream_init); |
|
|
|
|
|
|
|
|
|
if (rc >= NGX_HTTP_SPECIAL_RESPONSE) { |
|
|
|
|
@ -1068,7 +1082,10 @@ ngx_http_uwsgi_create_request(ngx_http_request_t *r) |
|
|
|
|
b->last = ngx_copy(b->last, uwcf->uwsgi_string.data, |
|
|
|
|
uwcf->uwsgi_string.len); |
|
|
|
|
|
|
|
|
|
if (uwcf->upstream.pass_request_body) { |
|
|
|
|
if (r->request_body_no_buffering) { |
|
|
|
|
r->upstream->request_bufs = cl; |
|
|
|
|
|
|
|
|
|
} else if (uwcf->upstream.pass_request_body) { |
|
|
|
|
body = r->upstream->request_bufs; |
|
|
|
|
r->upstream->request_bufs = cl; |
|
|
|
|
|
|
|
|
|
@ -1368,6 +1385,7 @@ ngx_http_uwsgi_create_loc_conf(ngx_conf_t *cf) |
|
|
|
|
conf->upstream.store_access = NGX_CONF_UNSET_UINT; |
|
|
|
|
conf->upstream.next_upstream_tries = NGX_CONF_UNSET_UINT; |
|
|
|
|
conf->upstream.buffering = NGX_CONF_UNSET; |
|
|
|
|
conf->upstream.request_buffering = NGX_CONF_UNSET; |
|
|
|
|
conf->upstream.ignore_client_abort = NGX_CONF_UNSET; |
|
|
|
|
conf->upstream.force_ranges = NGX_CONF_UNSET; |
|
|
|
|
|
|
|
|
|
@ -1464,6 +1482,9 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) |
|
|
|
|
ngx_conf_merge_value(conf->upstream.buffering, |
|
|
|
|
prev->upstream.buffering, 1); |
|
|
|
|
|
|
|
|
|
ngx_conf_merge_value(conf->upstream.request_buffering, |
|
|
|
|
prev->upstream.request_buffering, 1); |
|
|
|
|
|
|
|
|
|
ngx_conf_merge_value(conf->upstream.ignore_client_abort, |
|
|
|
|
prev->upstream.ignore_client_abort, 0); |
|
|
|
|
|
|
|
|
|
|