Mercurial > hg > nginx-vendor-0-7
comparison src/http/modules/ngx_http_fastcgi_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 |
---|---|
176 { ngx_string("timeout"), NGX_HTTP_UPSTREAM_FT_TIMEOUT }, | 176 { ngx_string("timeout"), NGX_HTTP_UPSTREAM_FT_TIMEOUT }, |
177 { ngx_string("invalid_header"), NGX_HTTP_UPSTREAM_FT_INVALID_HEADER }, | 177 { ngx_string("invalid_header"), NGX_HTTP_UPSTREAM_FT_INVALID_HEADER }, |
178 { ngx_string("http_500"), NGX_HTTP_UPSTREAM_FT_HTTP_500 }, | 178 { ngx_string("http_500"), NGX_HTTP_UPSTREAM_FT_HTTP_500 }, |
179 { ngx_string("http_503"), NGX_HTTP_UPSTREAM_FT_HTTP_503 }, | 179 { ngx_string("http_503"), NGX_HTTP_UPSTREAM_FT_HTTP_503 }, |
180 { ngx_string("http_404"), NGX_HTTP_UPSTREAM_FT_HTTP_404 }, | 180 { ngx_string("http_404"), NGX_HTTP_UPSTREAM_FT_HTTP_404 }, |
181 { ngx_string("updating"), NGX_HTTP_UPSTREAM_FT_UPDATING }, | |
181 { ngx_string("off"), NGX_HTTP_UPSTREAM_FT_OFF }, | 182 { ngx_string("off"), NGX_HTTP_UPSTREAM_FT_OFF }, |
182 { ngx_null_string, 0 } | 183 { ngx_null_string, 0 } |
183 }; | 184 }; |
184 | 185 |
185 | 186 |
1909 ngx_http_script_compile_t sc; | 1910 ngx_http_script_compile_t sc; |
1910 ngx_http_script_copy_code_t *copy; | 1911 ngx_http_script_copy_code_t *copy; |
1911 | 1912 |
1912 if (conf->upstream.store != 0) { | 1913 if (conf->upstream.store != 0) { |
1913 ngx_conf_merge_value(conf->upstream.store, | 1914 ngx_conf_merge_value(conf->upstream.store, |
1914 prev->upstream.store, 0); | 1915 prev->upstream.store, 0); |
1915 | 1916 |
1916 if (conf->upstream.store_lengths == NULL) { | 1917 if (conf->upstream.store_lengths == NULL) { |
1917 conf->upstream.store_lengths = prev->upstream.store_lengths; | 1918 conf->upstream.store_lengths = prev->upstream.store_lengths; |
1918 conf->upstream.store_values = prev->upstream.store_values; | 1919 conf->upstream.store_values = prev->upstream.store_values; |
1919 } | 1920 } |
2539 ngx_http_fastcgi_loc_conf_t *flcf = conf; | 2540 ngx_http_fastcgi_loc_conf_t *flcf = conf; |
2540 | 2541 |
2541 ngx_str_t *value; | 2542 ngx_str_t *value; |
2542 ngx_http_script_compile_t sc; | 2543 ngx_http_script_compile_t sc; |
2543 | 2544 |
2544 if (flcf->upstream.store != NGX_CONF_UNSET || flcf->upstream.store_lengths) | 2545 if (flcf->upstream.store != NGX_CONF_UNSET |
2546 || flcf->upstream.store_lengths) | |
2545 { | 2547 { |
2546 return "is duplicate"; | 2548 return "is duplicate"; |
2547 } | 2549 } |
2548 | 2550 |
2549 value = cf->args->elts; | 2551 value = cf->args->elts; |
2550 | 2552 |
2553 if (ngx_strcmp(value[1].data, "off") == 0) { | |
2554 flcf->upstream.store = 0; | |
2555 return NGX_CONF_OK; | |
2556 } | |
2557 | |
2558 #if (NGX_HTTP_CACHE) | |
2559 | |
2560 if (flcf->upstream.cache != NGX_CONF_UNSET_PTR | |
2561 && flcf->upstream.cache != NULL) | |
2562 { | |
2563 return "is incompatible with \"fastcgi_cache\""; | |
2564 } | |
2565 | |
2566 #endif | |
2567 | |
2551 if (ngx_strcmp(value[1].data, "on") == 0) { | 2568 if (ngx_strcmp(value[1].data, "on") == 0) { |
2552 flcf->upstream.store = 1; | 2569 flcf->upstream.store = 1; |
2553 return NGX_CONF_OK; | |
2554 } | |
2555 | |
2556 if (ngx_strcmp(value[1].data, "off") == 0) { | |
2557 flcf->upstream.store = 0; | |
2558 return NGX_CONF_OK; | 2570 return NGX_CONF_OK; |
2559 } | 2571 } |
2560 | 2572 |
2561 /* include the terminating '\0' into script */ | 2573 /* include the terminating '\0' into script */ |
2562 value[1].len++; | 2574 value[1].len++; |
2595 } | 2607 } |
2596 | 2608 |
2597 if (ngx_strcmp(value[1].data, "off") == 0) { | 2609 if (ngx_strcmp(value[1].data, "off") == 0) { |
2598 flcf->upstream.cache = NULL; | 2610 flcf->upstream.cache = NULL; |
2599 return NGX_CONF_OK; | 2611 return NGX_CONF_OK; |
2612 } | |
2613 | |
2614 if (flcf->upstream.store > 0 || flcf->upstream.store_lengths) { | |
2615 return "is incompatible with \"fastcgi_store\""; | |
2600 } | 2616 } |
2601 | 2617 |
2602 flcf->upstream.cache = ngx_shared_memory_add(cf, &value[1], 0, | 2618 flcf->upstream.cache = ngx_shared_memory_add(cf, &value[1], 0, |
2603 &ngx_http_fastcgi_module); | 2619 &ngx_http_fastcgi_module); |
2604 if (flcf->upstream.cache == NULL) { | 2620 if (flcf->upstream.cache == NULL) { |