模块 ngx_http_slice_module

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

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

这个模块不是默认构建的,它应该使用--with-http_slice_moduleconfiguration 参数。

已知问题

目前,该模块在后台缓存更新等子请求中无法按预期工作。 在这种情况下,请求是在不支持字节范围的情况下构造的。

示例配置

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,server,location

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

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

嵌入变量

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

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