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

最后编辑: kuteng  文档更新时间: 2021-11-01 16:44   作者:kuteng