模块 ngx_http_slice_module
已知问题 示例配置 Directives slice 嵌入变量 |
这ngx_http_slice_module
module (1.9.8) 是一个过滤器
将请求拆分为多个子请求,
每个都返回一定范围的响应。
该过滤器提供了更有效的大响应缓存。
这个模块不是默认构建的,它应该使用--with-http_slice_module
configuration 参数。
已知问题
目前,该模块在后台缓存更新等子请求中无法按预期工作。 在这种情况下,请求是在不支持字节范围的情况下构造的。
示例配置
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 |
---|---|
默认值: |
slice 0; |
上下文: |
http ,server ,location |
设置size
的切片。
零值禁止将响应拆分为切片。
请注意,值过低可能会导致内存使用过多
以及打开大量文件。
为了使子请求返回所需的范围,
这$slice_range
变量应传递给
代理服务器作为Range
request 标头字段。
如果启用了缓存,则$slice_range
应添加到缓存键中,并且应启用具有 206 状态代码的响应的缓存。
嵌入变量
这ngx_http_slice_module
模块
支持以下嵌入变量:
$slice_range
- HTTP 中的当前切片范围
字节范围格式、
例如
bytes=0-1048575
.