Slice#
The module is a filter that splits a request into subrequests, each returning a certain range of response. The filter provides more effective caching of big responses.
When building from the source code,
this module isn't built by default;
it should be enabled with the
‑‑with‑http_slice_module
build option.
In packages and images from our repos, the module is included in the build.
Configuration Example#
location / {
slice 1m;
proxy_cache cache;
proxy_cache_key $uri$is_args$args$slice_range;
proxy_set_header Range $slice_range;
proxy_cache_valid 200 206 1h;
proxy_pass http://localhost:8000;
}
In this example, the response is split into 1-megabyte cacheable slices.
Directives#
slice#
Sets the size of the slice. The zero value disables splitting responses into slices.
Warning
Note that a too low value may result in excessive memory usage and opening a large number of files.
In order for a subrequest to return the required range, the $slice_range variable should be passed to the proxied server as the "Range" request header field. If caching is enabled, $slice_range should be added to the cache key and caching of responses with 206 status code should be enabled.
Built-in Variables#
$slice_range
#
the current slice range in HTTP byte range format, for example, bytes=0-1048575.