http_slice
module#
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.
This module is not built by default, it should be enabled with the ‑‑with‑http_slice_module configuration parameter.
Example Configuration#
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#
- Syntax:
slice
size;- Default:
slice 0;
- Context:
http, server, location
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.
Embedded Variables#
$slice_range
#
the current slice range in HTTP byte range format, for example, bytes=0-1048575.