comparison src/http/modules/ngx_http_proxy_module.c @ 6793:0fba3ed4e7eb

Cache: proxy_cache_max_range_offset and friends. It configures a threshold in bytes, above which client range requests are not cached. In such a case the client's Range header is passed directly to a proxied server.
author Dmitry Volyntsev <xeioex@nginx.com>
date Wed, 02 Nov 2016 20:05:21 +0300
parents d1d0dd69a419
children 1aeaae6e9446
comparison
equal deleted inserted replaced
6792:45d553812055 6793:0fba3ed4e7eb
488 { ngx_string("proxy_cache_min_uses"), 488 { ngx_string("proxy_cache_min_uses"),
489 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, 489 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
490 ngx_conf_set_num_slot, 490 ngx_conf_set_num_slot,
491 NGX_HTTP_LOC_CONF_OFFSET, 491 NGX_HTTP_LOC_CONF_OFFSET,
492 offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_min_uses), 492 offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_min_uses),
493 NULL },
494
495 { ngx_string("proxy_cache_max_range_offset"),
496 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
497 ngx_conf_set_off_slot,
498 NGX_HTTP_LOC_CONF_OFFSET,
499 offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_max_range_offset),
493 NULL }, 500 NULL },
494 501
495 { ngx_string("proxy_cache_use_stale"), 502 { ngx_string("proxy_cache_use_stale"),
496 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, 503 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE,
497 ngx_conf_set_bitmask_slot, 504 ngx_conf_set_bitmask_slot,
2845 conf->upstream.pass_request_body = NGX_CONF_UNSET; 2852 conf->upstream.pass_request_body = NGX_CONF_UNSET;
2846 2853
2847 #if (NGX_HTTP_CACHE) 2854 #if (NGX_HTTP_CACHE)
2848 conf->upstream.cache = NGX_CONF_UNSET; 2855 conf->upstream.cache = NGX_CONF_UNSET;
2849 conf->upstream.cache_min_uses = NGX_CONF_UNSET_UINT; 2856 conf->upstream.cache_min_uses = NGX_CONF_UNSET_UINT;
2857 conf->upstream.cache_max_range_offset = NGX_CONF_UNSET;
2850 conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR; 2858 conf->upstream.cache_bypass = NGX_CONF_UNSET_PTR;
2851 conf->upstream.no_cache = NGX_CONF_UNSET_PTR; 2859 conf->upstream.no_cache = NGX_CONF_UNSET_PTR;
2852 conf->upstream.cache_valid = NGX_CONF_UNSET_PTR; 2860 conf->upstream.cache_valid = NGX_CONF_UNSET_PTR;
2853 conf->upstream.cache_lock = NGX_CONF_UNSET; 2861 conf->upstream.cache_lock = NGX_CONF_UNSET;
2854 conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC; 2862 conf->upstream.cache_lock_timeout = NGX_CONF_UNSET_MSEC;
3105 return NGX_CONF_ERROR; 3113 return NGX_CONF_ERROR;
3106 } 3114 }
3107 3115
3108 ngx_conf_merge_uint_value(conf->upstream.cache_min_uses, 3116 ngx_conf_merge_uint_value(conf->upstream.cache_min_uses,
3109 prev->upstream.cache_min_uses, 1); 3117 prev->upstream.cache_min_uses, 1);
3118
3119 ngx_conf_merge_off_value(conf->upstream.cache_max_range_offset,
3120 prev->upstream.cache_max_range_offset,
3121 NGX_MAX_OFF_T_VALUE);
3110 3122
3111 ngx_conf_merge_bitmask_value(conf->upstream.cache_use_stale, 3123 ngx_conf_merge_bitmask_value(conf->upstream.cache_use_stale,
3112 prev->upstream.cache_use_stale, 3124 prev->upstream.cache_use_stale,
3113 (NGX_CONF_BITMASK_SET 3125 (NGX_CONF_BITMASK_SET
3114 |NGX_HTTP_UPSTREAM_FT_OFF)); 3126 |NGX_HTTP_UPSTREAM_FT_OFF));