Custom Query (2297 matches)
Results (16 - 18 of 2297)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#280 | wontfix | Avoid writing duplicate temporary cache files | ||
Description |
When a file isn't cached and two concurrent downloads are made for it, we get this behavior: 1) Nginx writes twice, to two temporary files. This duplicates disk writes for the same data. 2) Ignore_client_abort is force-enabled when caching, so nginx must download both files to completion even if the clients abort. This can waste bandwidth, diskspace, and disk writes. This patch makes nginx write to a temporary file only for the first request; subsequent concurrent requests are proxied without writing. diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c index c92de34..be61aa5 100644 --- a/src/http/ngx_http_file_cache.c +++ b/src/http/ngx_http_file_cache.c @@ -289,6 +289,10 @@ ngx_http_file_cache_open(ngx_http_request_t *r) return c->error; } + if (!c->exists && c->node->updating) { + return NGX_HTTP_CACHE_SCARCE; + } + c->temp_file = 1; test = c->exists ? 1 : 0; rv = NGX_DECLINED; @@ -381,10 +385,6 @@ ngx_http_file_cache_lock(ngx_http_request_t *r, ngx_http_cache_t *c) ngx_msec_t now, timer; ngx_http_file_cache_t *cache; - if (!c->lock) { - return NGX_DECLINED; - } - cache = c->file_cache; ngx_shmtx_lock(&cache->shpool->mutex); |
|||
#281 | invalid | proxy_cache_use_stale conflicts with proxy_intercept_errors | ||
Description |
When using nginx to proxy_pass requests to another webserver I'd like to intercept error pages and show own error. I set proxy_intercept_errors=on, set the error_page, but when I set "proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;" the 500 error from backend is displayed instead of custom error page. |
|||
#282 | fixed | Hide a ETag header with ssi on | ||
Description |
Dear Sir/Madam, At the moment nginx is hiding some headers for ssi-processed documents:
Is it possible to add an ETag header to this list? Thank you. With best regards, Daniel Podolsky |