从 1.25.0 开始,NGINX 已在主线版本正式支持 QUIC+HTTP/3
RHEL 7 和 SLES 12 下的二进制版本不支持 HTTP/3,因为该系统的 OpenSSL 不支持 TLS1.3
虽然 OpenSSL 目前不支持 QUIC,但 NGINX 开发了一个兼容层让 OpenSSL 支持 QUIC,不过该方案不支持 0-RTT 特性
可以通过源码编译安装的方式使用其他 TLS 库,比如:BoringSSL、LibreSSL 或者 OpenSSL 的 QUICTLS fork
配置
server {
listen 443 ssl;
listen 443 quic reuseport;
http2 on;
server_name www.example.com;
ssl_protocols TLSv1.3;
ssl_certificate ssl/www.example.com.crt;
ssl_certificate_key ssl/www.example.com.key;
location / {
proxy_pass http://my_backend;
add_header Alt_Svc 'h3=":443"; ma=86400';
}
}
目前各个浏览器第一次访问是还是走 TCP 协议使用 HTTP/2 或者 HTTP/1.1 请求您的网站,获取到 Alt-Svc 的头部信息后,才会走 HTTP/3 协议。