模块 ngx_http_slice_module

已知问题
示例配置
Directives
slice
嵌入变量

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

默认情况下,此模块不是构建的,应使用 configuration 参数启用它。--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 MB 的可缓存切片。

Directives

语法: slice size;
默认值:
slice 0;
上下文: http, ,serverlocation

设置切片的 。 零值禁止将响应拆分为切片。 请注意,值过低可能会导致内存使用过多 以及打开大量文件。size

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

嵌入变量

模块 支持以下嵌入变量:ngx_http_slice_module

$slice_range
HTTP 中的当前切片范围 字节范围格式、 例如。bytes=0-1048575