HTTP/2#
提供对`HTTP/2 <https://datatracker.ietf.org/doc/html/rfc9113>`_的支持。
当 从源代码构建 时,
此模块默认不构建;
应通过
‑‑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”,则 ciphers 应配置为符合 RFC 9113, 附录A 黑名单并被客户端支持。
指令#
http2#
Added in version 1.2.0.
启用`HTTP/2 <https://datatracker.ietf.org/doc/html/rfc9113>`__协议。
http2_body_preread_size#
设置每个请求的缓冲区大小,在请求体开始处理前可以存储请求体。
http2_chunk_size#
设置响应体切片的最大块大小。过低的值会导致更高的开销。过高的值会因`HOL阻塞 <http://en.wikipedia.org/wiki/Head-of-line_blocking>`_而降低优先级。
http2_max_concurrent_pushes#
自 1.2.0 版本弃用.
限制连接中并发 推送 请求的最大数量。
http2_max_concurrent_streams#
设置连接中并发HTTP/2流的最大数量。
http2_push#
自 1.2.0 版本弃用.
主动发送(推送)请求到指定的uri,并与原始请求的响应一起发送。只有具有绝对路径的相对URI将被处理,例如:
http2_push /static/css/main.css;
uri
值可以包含变量。
在同一配置级别可以指定多个 http2_push 指令。off
参数取消从上一级配置继承的 http2_push 指令的效果。
http2_push_preload#
自 1.2.0 版本弃用.
http2_recv_buffer_size#
设置每个 worker 输入缓冲区的大小。
内置变量#
http_v2 模块支持以下内置变量:
$http2
#
协商的协议标识符:
|
用于TLS上的HTTP/2 |
|
用于明文TCP上的HTTP/2 |
|
否则为空字符串 |