ngx_http_slice_module

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

默认情况下不构建此模块,可在构建 nginx 时使用 --with-http_slice_module 配置参数启用。

示例配置

  1. location / {
  2. slice 1m;
  3. proxy_cache cache;
  4. proxy_cache_key $uri$is_args$args$slice_range;
  5. proxy_set_header Range $slice_range;
  6. proxy_cache_valid 200 206 1h;
  7. proxy_pass http://localhost:8000;
  8. }

在此示例中,响应被拆分为 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

原文档

http://nginx.org/en/docs/http/ngx_http_slice_module.html