模块 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 https://127.0.0.1:8000; }
在此示例中,响应被拆分为 1 MB 可缓存的片段。
指令
语法 |
slice |
---|---|
默认值 |
slice 0; |
上下文 |
http 、server 、location |
设置片段的 size
。零值禁用将响应拆分为片段。请注意,过低的值可能会导致过度使用内存并打开大量文件。
为了使子请求返回所需的范围,应将 $slice_range
变量 传递 给代理服务器作为 Range
请求头字段。如果启用了 缓存,则应将 $slice_range
添加到 缓存键 中,并且应启用对状态码为 206 的响应的 缓存。
嵌入变量
ngx_http_slice_module
模块支持以下嵌入变量
$slice_range
- 当前片段范围,采用 HTTP 字节范围 格式,例如
bytes=0-1048575
。