comparison src/http/modules/ngx_http_scgi_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 973ee2276300
children 548f704c1907
comparison
equal deleted inserted replaced
5904:abb466a57a22 5905:2f7e557eab5b
272 { ngx_string("scgi_cache_lock_timeout"), 272 { ngx_string("scgi_cache_lock_timeout"),
273 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 273 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
274 ngx_conf_set_msec_slot, 274 ngx_conf_set_msec_slot,
275 NGX_HTTP_LOC_CONF_OFFSET, 275 NGX_HTTP_LOC_CONF_OFFSET,
276 offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_lock_timeout), 276 offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_lock_timeout),
277 NULL },
278
279 { ngx_string("scgi_cache_lock_age"),
280 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
281 ngx_conf_set_msec_slot,
282 NGX_HTTP_LOC_CONF_OFFSET,
283 offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_lock_age),
277 NULL }, 284 NULL },
278 285
279 { ngx_string("scgi_cache_revalidate"), 286 { ngx_string("scgi_cache_revalidate"),
280 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, 287 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
281 ngx_conf_set_flag_slot, 288 ngx_conf_set_flag_slot,
1131 conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; 1138 conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR;
1132 conf->upstream.no_cache = NGX_CONF_UNSET_PTR; 1139 conf->upstream.no_cache = NGX_CONF_UNSET_PTR;
1133 conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; 1140 conf->upstream.cache_valid = NGX_CONF_UNSET_PTR;
1134 conf->upstream.cache_lock = NGX_CONF_UNSET; 1141 conf->upstream.cache_lock = NGX_CONF_UNSET;
1135 conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC; 1142 conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC;
1143 conf->upstream.cache_lock_age = NGX_CONF_UNSET_MSEC;
1136 conf->upstream.cache_revalidate = NGX_CONF_UNSET; 1144 conf->upstream.cache_revalidate = NGX_CONF_UNSET;
1137 #endif 1145 #endif
1138 1146
1139 conf->upstream.hide_headers = NGX_CONF_UNSET_PTR; 1147 conf->upstream.hide_headers = NGX_CONF_UNSET_PTR;
1140 conf->upstream.pass_headers = NGX_CONF_UNSET_PTR; 1148 conf->upstream.pass_headers = NGX_CONF_UNSET_PTR;
1389 ngx_conf_merge_value(conf->upstream.cache_lock, 1397 ngx_conf_merge_value(conf->upstream.cache_lock,
1390 prev->upstream.cache_lock, 0); 1398 prev->upstream.cache_lock, 0);
1391 1399
1392 ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout, 1400 ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout,
1393 prev->upstream.cache_lock_timeout, 5000); 1401 prev->upstream.cache_lock_timeout, 5000);
1402
1403 ngx_conf_merge_msec_value(conf->upstream.cache_lock_age,
1404 prev->upstream.cache_lock_age, 5000);
1394 1405
1395 ngx_conf_merge_value(conf->upstream.cache_revalidate, 1406 ngx_conf_merge_value(conf->upstream.cache_revalidate,
1396 prev->upstream.cache_revalidate, 0); 1407 prev->upstream.cache_revalidate, 0);
1397 1408
1398 #endif 1409 #endif