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
。
原文档
http://nginx.org/en/docs/http/ngx_http_slice_module.html
ngx_http_spdy_module
该模块已被 1.9.5
中的 ngx_http_v2_module 模块所取代。
ngx_http_spdy_module
模块为 SPDY 提供实验性支持。目前,SPDY 协议草案 3.1已实施。
在 1.5.10 版之前,已实施 SPDY 协议草案 2。
默认情况下不构建此模块,可在构建 nginx 时使用 --with-http_spdy_module
配置参数启用它。
已知问题
该模块处于实验阶段,请注意风险。
当前的 SPDY 协议实现不支持服务器推送。
在 1.5.9 之前的版本中,SPDY 连接中的响应无法做到速率限制。
无论 proxy_request_buffering、fastcgi_request_buffering、uwsgi_request_buffering 和 scgi_request_buffering 指令为何值,都无法禁用客户端请求体缓冲。
示例配置
server {
listen 443 ssl spdy;
ssl_certificate server.crt;
ssl_certificate_key server.key;
...
}
请注意,为了在同一端口上同时接受 HTTPS 和 SPDY 连接,使用的 OpenSSL 库应支持 Next Protocol Negotiation TLS 扩展,该扩展自 OpenSSL 1.0.1 版开始可用。
指令
spdy_chunk_size
- | 说明 |
---|---|
语法 | spdy_chunk_size size ; |
默认 | spdy_chunk_size 8k; |
上下文 | http、server、location |
提示 | 该指令在 1.5.9 版本中出现 |
设置响应体分块的最大大小。值太低会导致更高的开销。由于 HOL 阻塞,太高的值会破坏优先级。
spdy_headers_comp
- | 说明 |
---|---|
语法 | spdy_headers_comp level ; |
默认 | spdy_headers_comp 0; |
上下文 | http、server |
设置响应头压缩级别(level
),范围从 1
(最快,压缩程度较低)到 9
(最慢,压缩程度最佳)。特殊值 0
将关闭头压缩。
内嵌变量
ngx_http_spdy_module
模块支持以下内嵌变量:
-
$spdy
SPDY 连接的 SPDY 协议版本,无则为空字符串
-
$spdy_request_priority
请求 SPDY 连接的优先级,无则为空字符串