Mercurial > hg > nginx-quic
diff src/http/modules/proxy/ngx_http_proxy_handler.c @ 154:eac26585476e
nginx-0.0.1-2003-10-22-11:05:29 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 22 Oct 2003 07:05:29 +0000 |
parents | c71aeb75c071 |
children | 46eb23d9471d |
line wrap: on
line diff
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c +++ b/src/http/modules/proxy/ngx_http_proxy_handler.c @@ -410,6 +410,7 @@ static void ngx_http_proxy_process_upstr ngx_http_proxy_finalize_request(p, NGX_HTTP_INTERNAL_SERVER_ERROR); return; } + p->header_in->tag = (ngx_hunk_tag_t) &ngx_http_proxy_module; } n = ngx_http_proxy_read_upstream_header(p); @@ -712,6 +713,7 @@ static void ngx_http_proxy_send_response ep->output_filter = (ngx_event_pipe_output_filter_pt) ngx_http_output_filter; ep->output_ctx = r; + ep->tag = (ngx_hunk_tag_t) &ngx_http_proxy_module; ep->bufs = p->lcf->bufs; ep->max_busy_len = p->lcf->max_busy_len; ep->upstream = p->upstream.connection; @@ -720,7 +722,7 @@ static void ngx_http_proxy_send_response ep->log = r->connection->log; ep->temp_path = p->lcf->temp_path; - ep->temp_file = ngx_palloc(r->pool, sizeof(ngx_file_t)); + ep->temp_file = ngx_pcalloc(r->pool, sizeof(ngx_file_t)); if (ep->temp_file == NULL) { ngx_http_proxy_finalize_request(p, 0); return; @@ -750,10 +752,23 @@ static void ngx_http_proxy_send_response */ p->header_in->last = p->header_in->pos; - /* STUB */ ep->cachable = 1; -#if 0 - ep->max_temp_file_size = 1000000000; -#endif + /* STUB */ ep->cachable = 0; + + if (p->lcf->cyclic_temp_file) { + + /* + * we need to disable the use of sendfile() if we use cyclic temp file + * because the writing a new data can interfere with sendfile + * that uses the same kernel file pages + */ + + ep->cyclic_temp_file = 1; + r->sendfile = 0; + + } else { + ep->cyclic_temp_file = 0; + r->sendfile = 1; + } p->event_pipe = ep; @@ -1162,16 +1177,17 @@ static void *ngx_http_proxy_create_loc_c conf->header_size = 4096; conf->read_timeout = 30000; - conf->bufs.num = 10; + conf->bufs.num = 5; conf->bufs.size = 4096; conf->max_busy_len = 8192; /* CHECK in _init conf->max_temp_size >= conf->bufs.size !!! */ - conf->max_temp_file_size = 4096 * 6; + conf->max_temp_file_size = 4096 * 3; - conf->temp_file_write_size = 4096 * 1; + conf->temp_file_write_size = 4096 * 2; + conf->cyclic_temp_file= 1; ngx_test_null(conf->temp_path, ngx_pcalloc(cf->pool, sizeof(ngx_path_t)), NULL);