需手动配置Nginx启用HTTP/3:一、确认内核≥4.18、OpenSSL≥3.0.0、Nginx≥1.25;二、用BoringSSL编译含--with-http_v3_module的Nginx;三、站点配置中添加listen 443 ssl http3和alt-svc头;四、通过chrome://net-internals、Network协议列及curl --http3验证。

如果您在宝塔面板中部署了网站,但希望启用HTTP/3协议以提升传输性能与连接效率,则需手动配置Nginx的QUIC支持,因为宝塔默认不开启HTTP/3。以下是实现该目标的具体操作步骤:
一、确认系统内核与OpenSSL版本兼容性
HTTP/3依赖于支持QUIC的Nginx版本(1.25.0+)及配套的BoringSSL或OpenSSL 3.0.0+,同时要求Linux内核≥4.18以支持UDP GSO特性。未满足任一条件将导致编译失败或运行时错误。
1、执行命令 uname -r 查看当前内核版本。
2、执行命令 openssl version 验证OpenSSL是否为3.0.0或更高版本。
3、执行命令 nginx -V 2>&1 | grep -o "nginx version: nginx/1\.[2-9][5-9]" 检查Nginx主版本是否达到1.25及以上。
二、编译支持HTTP/3的Nginx(使用BoringSSL)
宝塔官方源提供的Nginx不含QUIC模块,必须从源码重新编译并启用--with-http_v3_module。BoringSSL是目前最稳定的QUIC后端实现,推荐采用。
1、执行命令 cd /www/server/panel/install && bash install.sh 进入宝塔安装目录,备份原Nginx配置。
2、执行命令 wget https://nginx.org/download/nginx-1.25.3.tar.gz && tar -zxvf nginx-1.25.3.tar.gz 下载适配HTTP/3的Nginx源码。
3、执行命令 git clone https://boringssl.googlesource.com/boringssl && cd boringssl && mkdir build && cd build && cmake .. && make -j$(nproc) 编译BoringSSL静态库。
4、执行命令 cd /root/nginx-1.25.3 && ./configure --with-http_v3_module --with-cc-opt="-I../boringssl/include" --with-ld-opt="-L../boringssl/build/ssl -L../boringssl/build/crypto" 配置编译参数。
5、执行命令 make -j$(nproc) && make install 完成编译并覆盖安装。
三、修改站点Nginx配置启用HTTP/3
HTTP/3基于UDP端口443运行,需在server块中显式声明listen指令并启用quic参数,同时复用现有TLS证书配置,无需额外证书。
1、进入宝塔面板 → 网站 → 对应站点 → 设置 → 配置文件。
2、在server块内原有listen 443 ssl行下方添加:listen 443 ssl http3;
3、在同一server块中添加:add_header alt-svc 'h3=":443"; ma=86400';
4、确保已存在 ssl_protocols TLSv1.2 TLSv1.3; 且未禁用TLSv1.3。
5、保存配置后,执行命令 nginx -t 验证语法,再执行 nginx -s reload 重载服务。
四、验证HTTP/3是否生效
配置完成后需通过客户端实际请求确认QUIC连接建立状态,仅靠响应头alt-svc字段不足以证明服务端已正确处理HTTP/3流量。
1、在Chrome浏览器地址栏输入 chrome://net-internals/#quic,点击“Start Recording”。
2、访问您的站点URL,观察日志中是否出现 QUIC_SESSION 及对应状态码200。
3、打开开发者工具 → Network选项卡 → 右键表头 → 勾选Protocol,刷新页面,检查资源协议列是否显示h3。
4、执行命令 curl -I --http3 https://your-domain.com,若返回HTTP/3响应头则表示成功。










