切片#
该模块是一个过滤器,将请求拆分为子请求,每个子请求返回特定范围的响应。该过滤器提供了更有效的大响应缓存。
当 从源代码构建 时,默认情况下不会构建此模块;它需要通过 ‑‑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;
}
在此示例中,响应被分割为 1 兆字节可缓存的切片。
指令#
slice#
设置切片的大小。零值将禁用将响应分割为切片。
警告
请注意,值过低可能导致过多的内存使用和打开大量文件。
为了使子请求返回所需的范围,应该将 $slice_range 变量作为“Range”请求头字段传递给代理服务器。如果启用了 缓存,应将 $slice_range 添加到 缓存键 中,并应 启用 对状态码为 206 的响应的缓存。
内置变量#
$slice_range
#
以 HTTP字节范围 格式表示的当前切片范围,例如,bytes=0-1048575。