切片#

该模块是一个过滤器,将请求拆分为子请求,每个子请求返回特定范围的响应。该过滤器提供了更有效的大响应缓存。

从源代码构建 时,默认情况下不会构建此模块;它需要通过 ‑‑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 size;

默认值

slice 0;

上下文

http, server, location

设置切片的大小。零值将禁用将响应分割为切片。

警告

请注意,值过低可能导致过多的内存使用和打开大量文件。

为了使子请求返回所需的范围,应该将 $slice_range 变量作为“Range”请求头字段传递给代理服务器。如果启用了 缓存,应将 $slice_range 添加到 缓存键 中,并应 启用 对状态码为 206 的响应的缓存。

内置变量#

$slice_range#

HTTP字节范围 格式表示的当前切片范围,例如,bytes=0-1048575