模块 ngx_http_slice_module
| 示例配置 指令 slice 嵌入变量 |
模块 ngx_http_slice_module (1.9.8) 是一个将请求拆分为子请求的过滤器,每个子请求返回一定范围的响应。该过滤器提供了更有效的大响应缓存。
此模块默认不构建,应使用 --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 0; |
| 上下文: | http, server, location |
设置切片的 size。零值禁用将响应拆分为切片。请注意,过低的值可能导致过多的内存使用和打开大量文件。
为了让子请求返回所需的范围,应将 $slice_range 变量作为 Range 请求头字段传递给代理服务器。如果启用了缓存,应将 $slice_range 添加到缓存键中,并启用带有 206 状态码的响应的缓存。
嵌入变量
模块 ngx_http_slice_module 支持以下嵌入变量:
-
$slice_range -
当前切片范围,以HTTP 字节范围格式表示,例如,
bytes=0-1048575。
