HTTP/2#

提供对 HTTP/2 的支持。

从源代码构建 时, 默认不构建此模块; 应使用 ‑‑with‑http_v2_module 构建选项 启用它。

在来自 我们仓库 的软件包和镜像中, 该模块已包含在构建中。

配置示例#

server {
    listen 443 ssl;

    http2 on;

    ssl_certificate server.crt;
    ssl_certificate_key server.key;
}

备注

请注意,通过 TLS 接受 HTTP/2 连接需要"应用层协议协商"(ALPN)TLS 扩展支持,该功能从 OpenSSL 1.0.2 版本开始提供。

如果 ssl_prefer_server_ciphers 指令设置为值"on",则应配置 密码套件 以符合 RFC 9113 附录 A 黑名单,并且客户端需要支持。

指令#

http2#

语法

http2 on | off;

默认值

http2 off;

上下文

http, server

启用 HTTP/2 协议。

http2_body_preread_size#

语法

http2_body_preread_size size;

默认值

上下文

http, server

设置每个请求的缓冲区大小,在开始处理请求之前,请求体可以保存在该缓冲区中。

http2_chunk_size#

语法

http2_chunk_size size;

默认值

http2_chunk_size 8k;

上下文

http, server, location

设置响应体被切分成的块的最大大小。值过低会导致更高的开销。值过高会由于 队头阻塞 而影响优先级处理。

http2_max_concurrent_pushes#

自 1.2.0 版本弃用.

语法

http2_max_concurrent_pushes number;

默认值

http2_max_concurrent_pushes 10;

上下文

http, server

限制连接中并发 推送 请求的最大数量。

http2_max_concurrent_streams#

语法

http2_max_concurrent_streams number;

默认值

http2_max_concurrent_streams 128;

上下文

http, server

设置连接中并发 HTTP/2 流的最大数量。

http2_push#

自 1.2.0 版本弃用.

语法

http2_push uri | off;

默认值

http2_push off;

上下文

http, server, location

抢先发送(推送)对指定 uri 的请求,连同对原始请求的响应一起发送。只会处理带有绝对路径的相对 URI,例如:

http2_push /static/css/main.css;

uri 值可以包含变量。

可以在同一配置级别指定多个 http2_push 指令。off 参数取消从上一级配置继承的 http2_push 指令的效果。

http2_push_preload#

自 1.2.0 版本弃用.

语法

http2_push_preload on | off;

默认值

http2_push_preload off;

上下文

http, server, location

启用将"Link"响应头字段中指定的 预加载链接 自动转换为 推送 请求。

http2_recv_buffer_size#

语法

http2_recv_buffer_size size;

默认值

http2_recv_buffer_size 256k;

上下文

http

设置每个 工作进程 的输入缓冲区大小。

内置变量#

http_v2 模块支持以下内置变量:

$http2#

协商的协议标识符:

h2

表示基于 TLS 的 HTTP/2

h2c

表示基于明文 TCP 的 HTTP/2

""

否则为空字符串