comparison src/http/modules/ngx_http_proxy_module.c @ 5905:2f7e557eab5b

Cache: proxy_cache_lock_age and friends. Once this age is reached, the cache lock is discarded and another request can acquire the lock. Requests which failed to acquire the lock are not allowed to cache the response.
author Roman Arutyunyan <arut@nginx.com>
date Tue, 18 Nov 2014 20:41:12 +0300
parents 20d966ad5e89
children 195561ef367f
comparison
equal deleted inserted replaced
5904:abb466a57a22 5905:2f7e557eab5b
485 { ngx_string("proxy_cache_lock_timeout"), 485 { ngx_string("proxy_cache_lock_timeout"),
486 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 486 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
487 ngx_conf_set_msec_slot, 487 ngx_conf_set_msec_slot,
488 NGX_HTTP_LOC_CONF_OFFSET, 488 NGX_HTTP_LOC_CONF_OFFSET,
489 offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_lock_timeout), 489 offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_lock_timeout),
490 NULL },
491
492 { ngx_string("proxy_cache_lock_age"),
493 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
494 ngx_conf_set_msec_slot,
495 NGX_HTTP_LOC_CONF_OFFSET,
496 offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_lock_age),
490 NULL }, 497 NULL },
491 498
492 { ngx_string("proxy_cache_revalidate"), 499 { ngx_string("proxy_cache_revalidate"),
493 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, 500 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
494 ngx_conf_set_flag_slot, 501 ngx_conf_set_flag_slot,
2542 conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; 2549 conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR;
2543 conf->upstream.no_cache = NGX_CONF_UNSET_PTR; 2550 conf->upstream.no_cache = NGX_CONF_UNSET_PTR;
2544 conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; 2551 conf->upstream.cache_valid = NGX_CONF_UNSET_PTR;
2545 conf->upstream.cache_lock = NGX_CONF_UNSET; 2552 conf->upstream.cache_lock = NGX_CONF_UNSET;
2546 conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC; 2553 conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC;
2554 conf->upstream.cache_lock_age = NGX_CONF_UNSET_MSEC;
2547 conf->upstream.cache_revalidate = NGX_CONF_UNSET; 2555 conf->upstream.cache_revalidate = NGX_CONF_UNSET;
2548 #endif 2556 #endif
2549 2557
2550 conf->upstream.hide_headers = NGX_CONF_UNSET_PTR; 2558 conf->upstream.hide_headers = NGX_CONF_UNSET_PTR;
2551 conf->upstream.pass_headers = NGX_CONF_UNSET_PTR; 2559 conf->upstream.pass_headers = NGX_CONF_UNSET_PTR;
2815 ngx_conf_merge_value(conf->upstream.cache_lock, 2823 ngx_conf_merge_value(conf->upstream.cache_lock,
2816 prev->upstream.cache_lock, 0); 2824 prev->upstream.cache_lock, 0);
2817 2825
2818 ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout, 2826 ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout,
2819 prev->upstream.cache_lock_timeout, 5000); 2827 prev->upstream.cache_lock_timeout, 5000);
2828
2829 ngx_conf_merge_msec_value(conf->upstream.cache_lock_age,
2830 prev->upstream.cache_lock_age, 5000);
2820 2831
2821 ngx_conf_merge_value(conf->upstream.cache_revalidate, 2832 ngx_conf_merge_value(conf->upstream.cache_revalidate,
2822 prev->upstream.cache_revalidate, 0); 2833 prev->upstream.cache_revalidate, 0);
2823 2834
2824 #endif 2835 #endif