comparison src/http/ngx_http_core_module.c @ 496:116d5de7cbb6 NGINX_0_7_60

nginx 0.7.60 *) Feature: the "updating" parameter in "proxy_cache_use_stale" and "fastcgi_cache_use_stale" directives. *) Feature: the "keepalive_requests" directive. *) Bugfix: in open_file_cache and proxy/fastcgi cache interaction on start up. *) Bugfix: open_file_cache might cache open file descriptors too long. *) Bugfix: the "If-Modified-Since", "If-Range", etc. client request header lines were passed to backend while caching if no "proxy_set_header" directive was used with any parameters. *) Bugfix: the "Set-Cookie" and "P3P" response header lines were not hidden while caching if no "proxy_hide_header/fastcgi_hide_header" directives were used with any parameters. *) Bugfix: the ngx_http_image_filter_module did not support GIF87a format. Thanks to Denis Ilyinyh. *) Bugfix: nginx could not be built modules on Solaris 10 and early; the bug had appeared in 0.7.56. *) Bugfix: XLST filter did not work in subrequests. *) Bugfix: in relative paths handling in nginx/Windows. *) Bugfix: in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache in nginx/Windows.
author Igor Sysoev <http://sysoev.ru>
date Mon, 15 Jun 2009 00:00:00 +0400
parents 499474178a11
children ed3d382670c7
comparison
equal deleted inserted replaced
495:6d9fb4461113 496:116d5de7cbb6
438 ngx_http_core_keepalive, 438 ngx_http_core_keepalive,
439 NGX_HTTP_LOC_CONF_OFFSET, 439 NGX_HTTP_LOC_CONF_OFFSET,
440 0, 440 0,
441 NULL }, 441 NULL },
442 442
443 { ngx_string("keepalive_requests"),
444 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
445 ngx_conf_set_num_slot,
446 NGX_HTTP_LOC_CONF_OFFSET,
447 offsetof(ngx_http_core_loc_conf_t, keepalive_requests),
448 NULL },
449
443 { ngx_string("satisfy"), 450 { ngx_string("satisfy"),
444 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 451 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
445 ngx_conf_set_enum_slot, 452 ngx_conf_set_enum_slot,
446 NGX_HTTP_LOC_CONF_OFFSET, 453 NGX_HTTP_LOC_CONF_OFFSET,
447 offsetof(ngx_http_core_loc_conf_t, satisfy), 454 offsetof(ngx_http_core_loc_conf_t, satisfy),
1324 r->request_body_file_log_level = NGX_LOG_WARN; 1331 r->request_body_file_log_level = NGX_LOG_WARN;
1325 } 1332 }
1326 1333
1327 r->request_body_in_single_buf = clcf->client_body_in_single_buffer; 1334 r->request_body_in_single_buf = clcf->client_body_in_single_buffer;
1328 1335
1329 if (r->keepalive && clcf->keepalive_timeout == 0) { 1336 if (r->keepalive) {
1330 r->keepalive = 0; 1337 if (clcf->keepalive_timeout == 0) {
1338 r->keepalive = 0;
1339
1340 } else if (r->connection->requests >= clcf->keepalive_requests) {
1341 r->keepalive = 0;
1342 }
1331 } 1343 }
1332 1344
1333 if (!clcf->tcp_nopush) { 1345 if (!clcf->tcp_nopush) {
1334 /* disable TCP_NOPUSH/TCP_CORK use */ 1346 /* disable TCP_NOPUSH/TCP_CORK use */
1335 r->connection->tcp_nopush = NGX_TCP_NOPUSH_DISABLED; 1347 r->connection->tcp_nopush = NGX_TCP_NOPUSH_DISABLED;
2912 lcf->send_lowat = NGX_CONF_UNSET_SIZE; 2924 lcf->send_lowat = NGX_CONF_UNSET_SIZE;
2913 lcf->postpone_output = NGX_CONF_UNSET_SIZE; 2925 lcf->postpone_output = NGX_CONF_UNSET_SIZE;
2914 lcf->limit_rate = NGX_CONF_UNSET_SIZE; 2926 lcf->limit_rate = NGX_CONF_UNSET_SIZE;
2915 lcf->keepalive_timeout = NGX_CONF_UNSET_MSEC; 2927 lcf->keepalive_timeout = NGX_CONF_UNSET_MSEC;
2916 lcf->keepalive_header = NGX_CONF_UNSET; 2928 lcf->keepalive_header = NGX_CONF_UNSET;
2929 lcf->keepalive_requests = NGX_CONF_UNSET_UINT;
2917 lcf->lingering_time = NGX_CONF_UNSET_MSEC; 2930 lcf->lingering_time = NGX_CONF_UNSET_MSEC;
2918 lcf->lingering_timeout = NGX_CONF_UNSET_MSEC; 2931 lcf->lingering_timeout = NGX_CONF_UNSET_MSEC;
2919 lcf->resolver_timeout = NGX_CONF_UNSET_MSEC; 2932 lcf->resolver_timeout = NGX_CONF_UNSET_MSEC;
2920 lcf->reset_timedout_connection = NGX_CONF_UNSET; 2933 lcf->reset_timedout_connection = NGX_CONF_UNSET;
2921 lcf->server_name_in_redirect = NGX_CONF_UNSET; 2934 lcf->server_name_in_redirect = NGX_CONF_UNSET;
3112 ngx_conf_merge_size_value(conf->limit_rate, prev->limit_rate, 0); 3125 ngx_conf_merge_size_value(conf->limit_rate, prev->limit_rate, 0);
3113 ngx_conf_merge_msec_value(conf->keepalive_timeout, 3126 ngx_conf_merge_msec_value(conf->keepalive_timeout,
3114 prev->keepalive_timeout, 75000); 3127 prev->keepalive_timeout, 75000);
3115 ngx_conf_merge_sec_value(conf->keepalive_header, 3128 ngx_conf_merge_sec_value(conf->keepalive_header,
3116 prev->keepalive_header, 0); 3129 prev->keepalive_header, 0);
3130 ngx_conf_merge_uint_value(conf->keepalive_requests,
3131 prev->keepalive_requests, 100);
3117 ngx_conf_merge_msec_value(conf->lingering_time, 3132 ngx_conf_merge_msec_value(conf->lingering_time,
3118 prev->lingering_time, 30000); 3133 prev->lingering_time, 30000);
3119 ngx_conf_merge_msec_value(conf->lingering_timeout, 3134 ngx_conf_merge_msec_value(conf->lingering_timeout,
3120 prev->lingering_timeout, 5000); 3135 prev->lingering_timeout, 5000);
3121 ngx_conf_merge_msec_value(conf->resolver_timeout, 3136 ngx_conf_merge_msec_value(conf->resolver_timeout,