Mercurial > hg > nginx-vendor-1-0
comparison src/http/ngx_http_core_module.c @ 412:b246022ef454 NGINX_0_7_18
nginx 0.7.18
*) Change: the "underscores_in_headers" directive; now nginx does not
allows underscores in a client request header line names.
*) Feature: the ngx_http_secure_link_module.
*) Feature: the "real_ip_header" directive supports any header.
*) Feature: the "log_subrequest" directive.
*) Feature: the $realpath_root variable.
*) Feature: the "http_502" and "http_504" parameters of the
"proxy_next_upstream" directive.
*) Bugfix: the "http_503" parameter of the "proxy_next_upstream" or
"fastcgi_next_upstream" directives did not work.
*) Bugfix: nginx might send a "Transfer-Encoding: chunked" heaer line
for HEAD requests.
*) Bugfix: now accept threshold depends on worker_connections.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 13 Oct 2008 00:00:00 +0400 |
parents | 79c5df00501e |
children | b4f69f2ef02c |
comparison
equal
deleted
inserted
replaced
411:b453a4324c60 | 412:b246022ef454 |
---|---|
229 ngx_conf_set_flag_slot, | 229 ngx_conf_set_flag_slot, |
230 NGX_HTTP_SRV_CONF_OFFSET, | 230 NGX_HTTP_SRV_CONF_OFFSET, |
231 offsetof(ngx_http_core_srv_conf_t, merge_slashes), | 231 offsetof(ngx_http_core_srv_conf_t, merge_slashes), |
232 NULL }, | 232 NULL }, |
233 | 233 |
234 { ngx_string("underscores_in_headers"), | |
235 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG, | |
236 ngx_conf_set_flag_slot, | |
237 NGX_HTTP_SRV_CONF_OFFSET, | |
238 offsetof(ngx_http_core_srv_conf_t, underscores_in_headers), | |
239 NULL }, | |
240 | |
234 { ngx_string("location"), | 241 { ngx_string("location"), |
235 NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_BLOCK|NGX_CONF_TAKE12, | 242 NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_BLOCK|NGX_CONF_TAKE12, |
236 ngx_http_core_location, | 243 ngx_http_core_location, |
237 NGX_HTTP_SRV_CONF_OFFSET, | 244 NGX_HTTP_SRV_CONF_OFFSET, |
238 0, | 245 0, |
483 { ngx_string("log_not_found"), | 490 { ngx_string("log_not_found"), |
484 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, | 491 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
485 ngx_conf_set_flag_slot, | 492 ngx_conf_set_flag_slot, |
486 NGX_HTTP_LOC_CONF_OFFSET, | 493 NGX_HTTP_LOC_CONF_OFFSET, |
487 offsetof(ngx_http_core_loc_conf_t, log_not_found), | 494 offsetof(ngx_http_core_loc_conf_t, log_not_found), |
495 NULL }, | |
496 | |
497 { ngx_string("log_subrequest"), | |
498 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, | |
499 ngx_conf_set_flag_slot, | |
500 NGX_HTTP_LOC_CONF_OFFSET, | |
501 offsetof(ngx_http_core_loc_conf_t, log_subrequest), | |
488 NULL }, | 502 NULL }, |
489 | 503 |
490 { ngx_string("recursive_error_pages"), | 504 { ngx_string("recursive_error_pages"), |
491 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, | 505 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, |
492 ngx_conf_set_flag_slot, | 506 ngx_conf_set_flag_slot, |
2525 cscf->request_pool_size = NGX_CONF_UNSET_SIZE; | 2539 cscf->request_pool_size = NGX_CONF_UNSET_SIZE; |
2526 cscf->client_header_timeout = NGX_CONF_UNSET_MSEC; | 2540 cscf->client_header_timeout = NGX_CONF_UNSET_MSEC; |
2527 cscf->client_header_buffer_size = NGX_CONF_UNSET_SIZE; | 2541 cscf->client_header_buffer_size = NGX_CONF_UNSET_SIZE; |
2528 cscf->ignore_invalid_headers = NGX_CONF_UNSET; | 2542 cscf->ignore_invalid_headers = NGX_CONF_UNSET; |
2529 cscf->merge_slashes = NGX_CONF_UNSET; | 2543 cscf->merge_slashes = NGX_CONF_UNSET; |
2544 cscf->underscores_in_headers = NGX_CONF_UNSET; | |
2530 | 2545 |
2531 return cscf; | 2546 return cscf; |
2532 } | 2547 } |
2533 | 2548 |
2534 | 2549 |
2602 | 2617 |
2603 ngx_conf_merge_value(conf->ignore_invalid_headers, | 2618 ngx_conf_merge_value(conf->ignore_invalid_headers, |
2604 prev->ignore_invalid_headers, 1); | 2619 prev->ignore_invalid_headers, 1); |
2605 | 2620 |
2606 ngx_conf_merge_value(conf->merge_slashes, prev->merge_slashes, 1); | 2621 ngx_conf_merge_value(conf->merge_slashes, prev->merge_slashes, 1); |
2622 | |
2623 ngx_conf_merge_value(conf->underscores_in_headers, | |
2624 prev->underscores_in_headers, 0); | |
2607 | 2625 |
2608 return NGX_CONF_OK; | 2626 return NGX_CONF_OK; |
2609 } | 2627 } |
2610 | 2628 |
2611 | 2629 |
2661 lcf->server_name_in_redirect = NGX_CONF_UNSET; | 2679 lcf->server_name_in_redirect = NGX_CONF_UNSET; |
2662 lcf->port_in_redirect = NGX_CONF_UNSET; | 2680 lcf->port_in_redirect = NGX_CONF_UNSET; |
2663 lcf->msie_padding = NGX_CONF_UNSET; | 2681 lcf->msie_padding = NGX_CONF_UNSET; |
2664 lcf->msie_refresh = NGX_CONF_UNSET; | 2682 lcf->msie_refresh = NGX_CONF_UNSET; |
2665 lcf->log_not_found = NGX_CONF_UNSET; | 2683 lcf->log_not_found = NGX_CONF_UNSET; |
2684 lcf->log_subrequest = NGX_CONF_UNSET; | |
2666 lcf->recursive_error_pages = NGX_CONF_UNSET; | 2685 lcf->recursive_error_pages = NGX_CONF_UNSET; |
2667 lcf->server_tokens = NGX_CONF_UNSET; | 2686 lcf->server_tokens = NGX_CONF_UNSET; |
2668 lcf->types_hash_max_size = NGX_CONF_UNSET_UINT; | 2687 lcf->types_hash_max_size = NGX_CONF_UNSET_UINT; |
2669 lcf->types_hash_bucket_size = NGX_CONF_UNSET_UINT; | 2688 lcf->types_hash_bucket_size = NGX_CONF_UNSET_UINT; |
2670 | 2689 |
2885 prev->server_name_in_redirect, 1); | 2904 prev->server_name_in_redirect, 1); |
2886 ngx_conf_merge_value(conf->port_in_redirect, prev->port_in_redirect, 1); | 2905 ngx_conf_merge_value(conf->port_in_redirect, prev->port_in_redirect, 1); |
2887 ngx_conf_merge_value(conf->msie_padding, prev->msie_padding, 1); | 2906 ngx_conf_merge_value(conf->msie_padding, prev->msie_padding, 1); |
2888 ngx_conf_merge_value(conf->msie_refresh, prev->msie_refresh, 0); | 2907 ngx_conf_merge_value(conf->msie_refresh, prev->msie_refresh, 0); |
2889 ngx_conf_merge_value(conf->log_not_found, prev->log_not_found, 1); | 2908 ngx_conf_merge_value(conf->log_not_found, prev->log_not_found, 1); |
2909 ngx_conf_merge_value(conf->log_subrequest, prev->log_subrequest, 0); | |
2890 ngx_conf_merge_value(conf->recursive_error_pages, | 2910 ngx_conf_merge_value(conf->recursive_error_pages, |
2891 prev->recursive_error_pages, 0); | 2911 prev->recursive_error_pages, 0); |
2892 ngx_conf_merge_value(conf->server_tokens, prev->server_tokens, 1); | 2912 ngx_conf_merge_value(conf->server_tokens, prev->server_tokens, 1); |
2893 | 2913 |
2894 ngx_conf_merge_ptr_value(conf->open_file_cache, | 2914 ngx_conf_merge_ptr_value(conf->open_file_cache, |
3263 if (ngx_strstr(value[1].data, "$document_root") | 3283 if (ngx_strstr(value[1].data, "$document_root") |
3264 || ngx_strstr(value[1].data, "${document_root}")) | 3284 || ngx_strstr(value[1].data, "${document_root}")) |
3265 { | 3285 { |
3266 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | 3286 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
3267 "the $document_root variable may not be used " | 3287 "the $document_root variable may not be used " |
3288 "in the \"%V\" directive", | |
3289 &cmd->name); | |
3290 | |
3291 return NGX_CONF_ERROR; | |
3292 } | |
3293 | |
3294 if (ngx_strstr(value[1].data, "$realpath_root") | |
3295 || ngx_strstr(value[1].data, "${realpath_root}")) | |
3296 { | |
3297 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
3298 "the $realpath_root variable may not be used " | |
3268 "in the \"%V\" directive", | 3299 "in the \"%V\" directive", |
3269 &cmd->name); | 3300 &cmd->name); |
3270 | 3301 |
3271 return NGX_CONF_ERROR; | 3302 return NGX_CONF_ERROR; |
3272 } | 3303 } |