summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_file_cache.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2011-11-01Merging r4151, r4152, r4177:Igor Sysoev1-3/+5
HTTP cache related fixes: *) Cache: fix for sending of empty responses. Revert wrong fix for empty responses introduced in 0.8.31 and apply new one, rewritten to match things done by static module as close as possible. *) Cache: fix for sending of stale responses. For normal cached responses ngx_http_cache_send() sends last buffer and then request finalized via ngx_http_finalize_request() call, i.e. everything is ok. But for stale responses (i.e. when upstream died, but we have something in cache) the same ngx_http_cache_send() sends last buffer, but then in ngx_http_upstream_finalize_request() another last buffer is send. This causes duplicate final chunk to appear if chunked encoding is used (and resulting problems with keepalive connections and so on). Fix this by not sending in ngx_http_upstream_finalize_request() another last buffer if we know response was from cache. *) Fixed cache bypass caching of non-cacheable replies (ticket #21). If cache was bypassed with proxy_cache_bypass, cache-controlling headers (Cache-Control, Expires) wasn't considered and response was cached even if it was actually non-cacheable. Patch by John Ferlito.
2011-08-29Merge of r3972, r3973, r3974:Igor Sysoev1-5/+7
Cache fixes: *) do not close connection if cache file is too small: replace it with valid one *) rename ngx_http_file_cache_manager_sleep() to ngx_http_file_cache_loader_sleep() and do not use it all in cache manager: this is a vestige of the times when cache manager loaded cache *) set correct configuration file values while adding path
2011-08-29Merge of r3966, r3967, r3968, r3969, r3970, r3971:Igor Sysoev1-67/+19
Cache loader improvements: The cache loader performs two tasks: inserting cache objects in inactivity list and evaluating total cache size. Reading just directory is enough for this purpose. Elimination of reading cache files saves at least one disk I/O operation per file.
2011-08-29Merge of r4035:Igor Sysoev1-0/+1
Cache size accounting fix: actual cache size on disk was less than needed by sum of sizes of files loaded by worker processes themselves while cache loader was running. The bug has been introduced in r3900.
2011-07-19fix r3756: release lock to allow other process to delete cache nodeIgor Sysoev1-1/+2
patch by Maxim Dounin
2011-05-13fix a broken cached response if bypass/no_cache directive values are different,Igor Sysoev1-3/+1
the bug has been introduced in r3700
2011-04-22Use more precise stat.st_blocks to account cache size on UnixIgor Sysoev1-17/+14
instead of file length rounded to a file system block size. There is no similar way on Windows, so rounding to a cache->bsize is kept.
2011-04-08fix CPU hog in cache managerIgor Sysoev1-2/+7
patch by Maxim Dounin
2010-09-02fix race condition if during reconfiguration two cache managers tryIgor Sysoev1-0/+8
to delete old inactive entries: one of them removes a entry just locked by other manager from the queue and the rbtree as long inactive entry, causes the latter manager to segfault leaving cache mutex locked, the bug has been introduced in r3727
2010-08-04zero fcn->updating after node allocationIgor Sysoev1-0/+2
2010-08-04error status codes could be cached for next request only,Igor Sysoev1-2/+5
the bug has been introduced in r3712
2010-08-03delete surplus assignmentIgor Sysoev1-2/+0
2010-08-02change logic slightlyIgor Sysoev1-2/+2
2010-08-02change orderIgor Sysoev1-27/+22
2010-08-02*) delete cache key node after a cache file removalIgor Sysoev1-41/+26
*) move fileless cache key node removal in ngx_http_file_cache_delete()
2010-07-30count cache key node usage for cached error statusesIgor Sysoev1-5/+6
2010-07-30do not free unused cache node if cache min_uses > 1,Igor Sysoev1-1/+1
the bug has been introduced in r3695, r3708, r3711
2010-07-28move debug logging inside ngx_http_file_cache_free()Igor Sysoev1-2/+2
2010-07-28several changes in cache cleanup handling:Igor Sysoev1-23/+17
*) now ngx_http_file_cache_cleanup() uses ngx_http_file_cache_free() *) ngx_http_file_cache_free() interface has been changed to accept r->cache ngx_http_file_cache_cleanup() must use r->cache, but not r, because there can be several r->cache's during request processing, r->cache may be NULL at request finalising, etc. *) test if updating request does not complete correctly
2010-07-27fix r3708 and r3695: valid_sec is set only for caching error status codesIgor Sysoev1-1/+1
2010-07-27fix r3695: this commitIgor Sysoev1-1/+1
*) freed valid keys zone node *) and did not decrease cache size, so cache manager process ete CPU time, if cache checking max_size was enabled
2010-07-19initialize r->cache->file.fd with NGX_INVALID_FILEIgor Sysoev1-0/+1
2010-07-19proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypassIgor Sysoev1-0/+33
2010-07-16rename ngx_http_file_cache_create() to ngx_http_file_cache_new()Igor Sysoev1-1/+1
2010-07-15ngx_http_file_cache_create()Igor Sysoev1-0/+21
2010-07-15ngx_http_file_cache_name()Igor Sysoev1-20/+34
2010-07-15style fixIgor Sysoev1-2/+0
2010-07-15delete empty cache zone node if we could not get response to cacheIgor Sysoev1-8/+15
2010-05-24proxy_no_cache and fastcgi_no_cacheIgor Sysoev1-0/+66
2010-03-25*) introduce ngx_time_sigsafe_update() to update the error log time onlyIgor Sysoev1-2/+2
*) change ngx_time_update() interface
2010-03-13*) use previously cached GMT offset value to update time from a signal handlerIgor Sysoev1-2/+2
*) change ngx_time_update() interface since there are no notification methods those return time
2010-03-03fix cached FastCGI response with large stderr output before headerIgor Sysoev1-1/+2
2009-12-23fix a cached zero-length body caseIgor Sysoev1-7/+3
2009-11-29fix handling cached HTTP/0.9 responseIgor Sysoev1-1/+1
2009-11-05export aio presence knowledge to prevent using "aio sendfile",Igor Sysoev1-29/+42
if aio does not present
2009-10-07use real file cache length, this fixes cache size counting for responsesIgor Sysoev1-3/+5
without "Content-Length" header and 304 responses.
2009-09-30read_aheadIgor Sysoev1-0/+1
2009-09-15do not pass buf with empty cached response,Igor Sysoev1-1/+7
this fixes "zero size buf in output" alert
2009-08-28FreeBSD and Linux AIO supportIgor Sysoev1-18/+91
2009-08-12allow cross device temporary files atomic copying:Igor Sysoev1-1/+0
*) ngx_copy_file() *) delete ngx_ext_rename_file_t.log_rename_error and .rename_error fields
2009-08-10unlock incompletely loaded cacheIgor Sysoev1-0/+1
2009-08-10cache loader processIgor Sysoev1-33/+53
2009-08-10test cache path levels while reconfigurationIgor Sysoev1-0/+10
2009-06-18$upstream_cache_statusIgor Sysoev1-0/+9
2009-06-12add response file uniq while loading cold cache on demandIgor Sysoev1-0/+1
2009-06-06proxy_cache_use_stale/fastcgi_cache_use_stale updatingIgor Sysoev1-3/+20
2009-06-06delete useless r->cache->usesIgor Sysoev1-6/+2
2009-06-06remove remnantsIgor Sysoev1-2/+0
2009-04-18support attaching to an existent Win32 shared memoryIgor Sysoev1-52/+37
2009-04-16move zone name from ngx_shm_zone_t to ngx_shm_t to use Win32 shared memoryIgor Sysoev1-3/+5