需升级Nginx至1.25+并配置listen 443 ssl http2、listen 443 quic reuseport,启用--with-http_v3_module,开放UDP 443端口,添加Alt-Svc响应头,并在浏览器中启用QUIC实验性协议。

如果您已在宝塔面板中部署网站并启用SSL,但浏览器未使用HTTP/2或HTTP/3协议通信,则可能是Nginx配置缺失关键指令、版本不兼容或防火墙未放行UDP端口。以下是同时开启HTTP/2与HTTP/3支持的多种可行方案:
一、升级Nginx至1.25及以上版本并启用HTTP/2
HTTP/2需Nginx 1.9.5+且编译时启用--with-http_v2_module,宝塔默认低版本(如1.22)可能未启用该模块。升级后通过在listen指令中显式添加http2可激活协议。
1、通过SSH连接服务器,执行官方升级脚本:
wget https://download.bt.cn/install/0/nginx5.sh && bash nginx5.sh install 1.25
2、等待安装完成,在宝塔面板首页确认Nginx版本显示为1.25或更高版本
3、进入【网站】→选择目标站点→【配置文件】,定位到server块内含listen 443 ssl;的行
4、将原行修改为:
listen 443 ssl http2;
5、保存配置,点击【重载Nginx】使设置生效
二、手动编译Nginx并启用QUIC模块支持HTTP/3
Nginx原生QUIC支持自1.25.0起实验性引入,必须启用--with-http_v3_module及依赖库(如boringssl或openssl 3.0+)。宝塔官方脚本已预置该能力,但需确保编译参数完整。
1、检查当前Nginx编译参数:
nginx -V 2>&1 | grep -o with-http_v3-module
2、若无输出,说明未启用QUIC模块,需重新编译:
wget https://download.bt.cn/install/0/nginx5.sh && bash nginx5.sh install 1.26
3、安装完成后验证:
nginx -V 2>&1 | grep v3
4、确认输出包含--with-http_v3_module
三、配置站点Nginx以同时支持HTTP/2与HTTP/3
单个server块需同时声明HTTP/2与QUIC监听,并正确设置Alt-Svc响应头,使客户端感知HTTP/3可用性。IPv4与IPv6需分别配置监听地址与reuseport选项以提升并发性能。
1、在站点配置文件server块顶部附近(通常第25–30行),插入以下监听指令:
listen 443 ssl;
listen 443 quic reuseport;
listen [::]:443 ssl;
listen [::]:443 quic reuseport;
2、在同一server块中,确保存在http2 on;指令(独立成行,不可与listen合并)
3、在server块内任意位置(建议紧接ssl配置后)添加:
ssl_early_data on;
4、添加Alt-Svc头部(严格区分大小写,Alt-Svc不可写作alt-svc):
add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"';
四、开放防火墙UDP 443端口并配置云平台安全组
HTTP/3基于QUIC运行于UDP协议,仅开放TCP 443无法建立HTTP/3连接。宝塔内置防火墙与云服务商安全组必须同步放行UDP 443端口,否则客户端始终降级至HTTP/2或HTTP/1.1。
1、登录宝塔面板,进入【安全】→【防火墙】→【放行端口】
2、输入443 UDP,点击【放行端口】
3、登录对应云平台控制台(如阿里云ECS、腾讯云CVM)
4、进入【安全组】→选择对应规则→【添加安全组规则】
5、协议类型选择UDP,端口范围填写443/443,授权对象设为0.0.0.0/0(或按需限制IP段)
五、客户端浏览器启用QUIC协议支持
即使服务端完全配置正确,主流浏览器默认仍禁用实验性QUIC栈。必须手动启用对应flag,否则浏览器不会发起HTTP/3请求,Alt-Svc头亦不触发协议协商。
1、Chrome浏览器访问:chrome://flags/#enable-quic
2、将【Experimental QUIC protocol】设为Enabled
3、Edge浏览器访问:edge://flags/#enable-quic
4、将【Experimental QUIC protocol】设为Enabled
5、Firefox浏览器访问:about:config
6、搜索network.http.http3.enabled,双击将其值设为true










