模块 ngx_http_v3_module
已知问题 示例配置 指令 http3 http3_hq http3_max_concurrent_streams http3_stream_buffer_size quic_active_connection_id_limit quic_bpf quic_gso quic_host_key quic_retry 嵌入式变量 |
ngx_http_v3_module
模块 (1.25.0) 为 HTTP/3 提供实验性支持。
此模块未默认构建,应使用 --with-http_v3_module
配置参数启用。
建议构建并运行此模块时使用提供 QUIC 支持的 SSL 库,例如 BoringSSL、LibreSSL 或 QuicTLS。否则,当使用 OpenSSL 库时,将使用不支持 早期数据 的 OpenSSL 兼容性层。
已知问题
该模块为实验性,适用买者自负原则。
示例配置
http { log_format quic '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$http3"'; access_log logs/access.log quic; server { # for better compatibility it's recommended # to use the same port for http/3 and https listen 8443 quic reuseport; listen 8443 ssl; ssl_certificate certs/example.com.crt; ssl_certificate_key certs/example.com.key; location / { # used to advertise the availability of HTTP/3 add_header Alt-Svc 'h3=":8443"; ma=86400'; } } }
请注意,通过 TLS 接受 HTTP/3 连接需要 TLSv1.3 协议支持,该支持自 OpenSSL 1.1.1 版起提供。
指令
语法 |
http3 |
---|---|
默认值 |
http3 on; |
上下文 |
http 、server |
启用 HTTP/3 协议协商。
语法 |
http3_hq |
---|---|
默认值 |
http3_hq off; |
上下文 |
http 、server |
启用在 QUIC 互操作性测试 中使用的 HTTP/0.9 协议协商。
语法 |
http3_max_concurrent_streams |
---|---|
默认值 |
http3_max_concurrent_streams 128; |
上下文 |
http 、server |
设置连接中的最大并发 HTTP/3 请求流数。
语法 |
http3_stream_buffer_size |
---|---|
默认值 |
http3_stream_buffer_size 64k; |
上下文 |
http 、server |
设置用于读写 QUIC 流的缓冲区大小。
语法 |
quic_active_connection_id_limit |
---|---|
默认值 |
quic_active_connection_id_limit 2; |
上下文 |
http 、server |
设置 QUIC active_connection_id_limit
传输参数值。这是服务器可以存储的客户端连接 ID 的最大数。
语法 |
quic_bpf |
---|---|
默认值 |
quic_bpf off; |
上下文 |
main |
启用使用 eBPF 路由 QUIC 数据包。启用后,这允许支持 QUIC 连接迁移。
该指令仅在 Linux 5.7+ 上受支持。
语法 |
quic_gso |
---|---|
默认值 |
quic_gso off; |
上下文 |
http 、server |
启用使用分段卸载以优化批处理模式发送。
仅在具有 UDP_SEGMENT
特性的 Linux 上支持优化发送。
语法 |
quic_host_key |
---|---|
默认值 | — |
上下文 |
http 、server |
设置一个 file
,其中包含用于加密无状态重置和地址验证令牌的密钥。默认情况下,每次重新加载时都会生成一个随机密钥。不接受使用旧密钥生成的令牌。
语法 |
quic_retry |
---|---|
默认值 |
quic_retry off; |
上下文 |
http 、server |
启用 QUIC 地址验证 功能。这包括在 Retry
数据包或 NEW_TOKEN
帧中发送新令牌,并在 Initial
数据包中验证收到的令牌。
嵌入式变量
ngx_http_v3_module
模块支持以下嵌入式变量
$http3
-
协商的协议标识符:对于 HTTP/3 连接为“
h3
”,对于 hq 连接为“hq
”,否则为空字符串。