ngx_http_slice_module
ngx_http_slice_module
模块(1.9.8)是一个过滤器,它将请求拆分为子请求,每个子请求都返回一定范围的响应。该过滤器针对大响应缓存更加有效。
默认情况下不构建此模块,可在构建 nginx 时使用 --with-http_slice_module
配置参数启用。
示例配置
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;
}
在此示例中,响应被拆分为 1M 大小的可缓存切片。
指令
slice
- | 说明 |
---|---|
语法 | slice size ; |
默认 | slice 0; |
上下文 | http、server、location |
设置切片的 size
(大小)。零值禁止将响应拆分为切片。请注意,值太低可能会导致内存使用过多并打开大量文件。
为了使子请求返回所需的范围,$slice_range
变量应作为 Range 请求头字段传递给代理服务器。如果启用了缓存,则应将 $slice_range
添加到缓存键,并启用 206 状态代码的响应缓存。
内嵌变量
ngx_http_slice_module
模块支持以下内嵌变量:
$slice_range
HTTP 字节范围格式的当前切片范围,例如:
bytes=0-1048575
。