comparison src/http/ngx_http_core_module.c @ 388:8815ae9c367b NGINX_0_6_38

nginx 0.6.38 *) Feature: the "keepalive_requests" directive.
author Igor Sysoev <http://sysoev.ru>
date Mon, 22 Jun 2009 00:00:00 +0400
parents 1878e9c00f22
children
comparison
equal deleted inserted replaced
387:837f381d298f 388:8815ae9c367b
424 ngx_http_core_keepalive, 424 ngx_http_core_keepalive,
425 NGX_HTTP_LOC_CONF_OFFSET, 425 NGX_HTTP_LOC_CONF_OFFSET,
426 0, 426 0,
427 NULL }, 427 NULL },
428 428
429 { ngx_string("keepalive_requests"),
430 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
431 ngx_conf_set_num_slot,
432 NGX_HTTP_LOC_CONF_OFFSET,
433 offsetof(ngx_http_core_loc_conf_t, keepalive_requests),
434 NULL },
435
429 { ngx_string("satisfy"), 436 { ngx_string("satisfy"),
430 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 437 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
431 ngx_conf_set_enum_slot, 438 ngx_conf_set_enum_slot,
432 NGX_HTTP_LOC_CONF_OFFSET, 439 NGX_HTTP_LOC_CONF_OFFSET,
433 offsetof(ngx_http_core_loc_conf_t, satisfy), 440 offsetof(ngx_http_core_loc_conf_t, satisfy),
1292 1299
1293 } else { 1300 } else {
1294 r->request_body_file_log_level = NGX_LOG_WARN; 1301 r->request_body_file_log_level = NGX_LOG_WARN;
1295 } 1302 }
1296 1303
1297 if (r->keepalive && clcf->keepalive_timeout == 0) { 1304 if (r->keepalive) {
1298 r->keepalive = 0; 1305 if (clcf->keepalive_timeout == 0) {
1306 r->keepalive = 0;
1307
1308 } else if (r->connection->requests >= clcf->keepalive_requests) {
1309 r->keepalive = 0;
1310 }
1299 } 1311 }
1300 1312
1301 if (!clcf->tcp_nopush) { 1313 if (!clcf->tcp_nopush) {
1302 /* disable TCP_NOPUSH/TCP_CORK use */ 1314 /* disable TCP_NOPUSH/TCP_CORK use */
1303 r->connection->tcp_nopush = NGX_TCP_NOPUSH_DISABLED; 1315 r->connection->tcp_nopush = NGX_TCP_NOPUSH_DISABLED;
2907 lcf->send_lowat = NGX_CONF_UNSET_SIZE; 2919 lcf->send_lowat = NGX_CONF_UNSET_SIZE;
2908 lcf->postpone_output = NGX_CONF_UNSET_SIZE; 2920 lcf->postpone_output = NGX_CONF_UNSET_SIZE;
2909 lcf->limit_rate = NGX_CONF_UNSET_SIZE; 2921 lcf->limit_rate = NGX_CONF_UNSET_SIZE;
2910 lcf->keepalive_timeout = NGX_CONF_UNSET_MSEC; 2922 lcf->keepalive_timeout = NGX_CONF_UNSET_MSEC;
2911 lcf->keepalive_header = NGX_CONF_UNSET; 2923 lcf->keepalive_header = NGX_CONF_UNSET;
2924 lcf->keepalive_requests = NGX_CONF_UNSET_UINT;
2912 lcf->lingering_time = NGX_CONF_UNSET_MSEC; 2925 lcf->lingering_time = NGX_CONF_UNSET_MSEC;
2913 lcf->lingering_timeout = NGX_CONF_UNSET_MSEC; 2926 lcf->lingering_timeout = NGX_CONF_UNSET_MSEC;
2914 lcf->resolver_timeout = NGX_CONF_UNSET_MSEC; 2927 lcf->resolver_timeout = NGX_CONF_UNSET_MSEC;
2915 lcf->reset_timedout_connection = NGX_CONF_UNSET; 2928 lcf->reset_timedout_connection = NGX_CONF_UNSET;
2916 lcf->server_name_in_redirect = NGX_CONF_UNSET; 2929 lcf->server_name_in_redirect = NGX_CONF_UNSET;
3101 ngx_conf_merge_size_value(conf->limit_rate, prev->limit_rate, 0); 3114 ngx_conf_merge_size_value(conf->limit_rate, prev->limit_rate, 0);
3102 ngx_conf_merge_msec_value(conf->keepalive_timeout, 3115 ngx_conf_merge_msec_value(conf->keepalive_timeout,
3103 prev->keepalive_timeout, 75000); 3116 prev->keepalive_timeout, 75000);
3104 ngx_conf_merge_sec_value(conf->keepalive_header, 3117 ngx_conf_merge_sec_value(conf->keepalive_header,
3105 prev->keepalive_header, 0); 3118 prev->keepalive_header, 0);
3119 ngx_conf_merge_uint_value(conf->keepalive_requests,
3120 prev->keepalive_requests, 100);
3106 ngx_conf_merge_msec_value(conf->lingering_time, 3121 ngx_conf_merge_msec_value(conf->lingering_time,
3107 prev->lingering_time, 30000); 3122 prev->lingering_time, 30000);
3108 ngx_conf_merge_msec_value(conf->lingering_timeout, 3123 ngx_conf_merge_msec_value(conf->lingering_timeout,
3109 prev->lingering_timeout, 5000); 3124 prev->lingering_timeout, 5000);
3110 ngx_conf_merge_msec_value(conf->resolver_timeout, 3125 ngx_conf_merge_msec_value(conf->resolver_timeout,