Cache lock support for fastcgi, scgi, uwsgi.
This commit is contained in:
parent
79b20c6b5a
commit
01626586ef
3 changed files with 66 additions and 0 deletions
|
@ -380,6 +380,20 @@ static ngx_command_t ngx_http_fastcgi_commands[] = {
|
|||
offsetof(ngx_http_fastcgi_loc_conf_t, upstream.cache_methods),
|
||||
&ngx_http_upstream_cache_method_mask },
|
||||
|
||||
{ ngx_string("fastcgi_cache_lock"),
|
||||
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
|
||||
ngx_conf_set_flag_slot,
|
||||
NGX_HTTP_LOC_CONF_OFFSET,
|
||||
offsetof(ngx_http_fastcgi_loc_conf_t, upstream.cache_lock),
|
||||
NULL },
|
||||
|
||||
{ ngx_string("fastcgi_cache_lock_timeout"),
|
||||
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
|
||||
ngx_conf_set_msec_slot,
|
||||
NGX_HTTP_LOC_CONF_OFFSET,
|
||||
offsetof(ngx_http_fastcgi_loc_conf_t, upstream.cache_lock_timeout),
|
||||
NULL },
|
||||
|
||||
#endif
|
||||
|
||||
{ ngx_string("fastcgi_temp_path"),
|
||||
|
@ -2086,6 +2100,8 @@ ngx_http_fastcgi_create_loc_conf(ngx_conf_t *cf)
|
|||
conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.no_cache = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.cache_valid = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.cache_lock = NGX_CONF_UNSET;
|
||||
conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC;
|
||||
#endif
|
||||
|
||||
conf->upstream.hide_headers = NGX_CONF_UNSET_PTR;
|
||||
|
@ -2323,6 +2339,12 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
conf->cache_key = prev->cache_key;
|
||||
}
|
||||
|
||||
ngx_conf_merge_value(conf->upstream.cache_lock,
|
||||
prev->upstream.cache_lock, 0);
|
||||
|
||||
ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout,
|
||||
prev->upstream.cache_lock_timeout, 5000);
|
||||
|
||||
#endif
|
||||
|
||||
ngx_conf_merge_value(conf->upstream.pass_request_headers,
|
||||
|
|
|
@ -246,6 +246,20 @@ static ngx_command_t ngx_http_scgi_commands[] = {
|
|||
offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_methods),
|
||||
&ngx_http_upstream_cache_method_mask },
|
||||
|
||||
{ ngx_string("scgi_cache_lock"),
|
||||
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
|
||||
ngx_conf_set_flag_slot,
|
||||
NGX_HTTP_LOC_CONF_OFFSET,
|
||||
offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_lock),
|
||||
NULL },
|
||||
|
||||
{ ngx_string("scgi_cache_lock_timeout"),
|
||||
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
|
||||
ngx_conf_set_msec_slot,
|
||||
NGX_HTTP_LOC_CONF_OFFSET,
|
||||
offsetof(ngx_http_scgi_loc_conf_t, upstream.cache_lock_timeout),
|
||||
NULL },
|
||||
|
||||
#endif
|
||||
|
||||
{ ngx_string("scgi_temp_path"),
|
||||
|
@ -1062,6 +1076,8 @@ ngx_http_scgi_create_loc_conf(ngx_conf_t *cf)
|
|||
conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.no_cache = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.cache_valid = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.cache_lock = NGX_CONF_UNSET;
|
||||
conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC;
|
||||
#endif
|
||||
|
||||
conf->upstream.hide_headers = NGX_CONF_UNSET_PTR;
|
||||
|
@ -1289,6 +1305,12 @@ ngx_http_scgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
conf->cache_key = prev->cache_key;
|
||||
}
|
||||
|
||||
ngx_conf_merge_value(conf->upstream.cache_lock,
|
||||
prev->upstream.cache_lock, 0);
|
||||
|
||||
ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout,
|
||||
prev->upstream.cache_lock_timeout, 5000);
|
||||
|
||||
#endif
|
||||
|
||||
ngx_conf_merge_value(conf->upstream.pass_request_headers,
|
||||
|
|
|
@ -274,6 +274,20 @@ static ngx_command_t ngx_http_uwsgi_commands[] = {
|
|||
offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_methods),
|
||||
&ngx_http_upstream_cache_method_mask },
|
||||
|
||||
{ ngx_string("uwsgi_cache_lock"),
|
||||
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
|
||||
ngx_conf_set_flag_slot,
|
||||
NGX_HTTP_LOC_CONF_OFFSET,
|
||||
offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_lock),
|
||||
NULL },
|
||||
|
||||
{ ngx_string("uwsgi_cache_lock_timeout"),
|
||||
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
|
||||
ngx_conf_set_msec_slot,
|
||||
NGX_HTTP_LOC_CONF_OFFSET,
|
||||
offsetof(ngx_http_uwsgi_loc_conf_t, upstream.cache_lock_timeout),
|
||||
NULL },
|
||||
|
||||
#endif
|
||||
|
||||
{ ngx_string("uwsgi_temp_path"),
|
||||
|
@ -1114,6 +1128,8 @@ ngx_http_uwsgi_create_loc_conf(ngx_conf_t *cf)
|
|||
conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.no_cache = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.cache_valid = NGX_CONF_UNSET_PTR;
|
||||
conf->upstream.cache_lock = NGX_CONF_UNSET;
|
||||
conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC;
|
||||
#endif
|
||||
|
||||
conf->upstream.hide_headers = NGX_CONF_UNSET_PTR;
|
||||
|
@ -1341,6 +1357,12 @@ ngx_http_uwsgi_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
|
|||
conf->cache_key = prev->cache_key;
|
||||
}
|
||||
|
||||
ngx_conf_merge_value(conf->upstream.cache_lock,
|
||||
prev->upstream.cache_lock, 0);
|
||||
|
||||
ngx_conf_merge_msec_value(conf->upstream.cache_lock_timeout,
|
||||
prev->upstream.cache_lock_timeout, 5000);
|
||||
|
||||
#endif
|
||||
|
||||
ngx_conf_merge_value(conf->upstream.pass_request_headers,
|
||||
|
|
Loading…
Reference in a new issue