宝塔面板开启HTTP/3配置教程

· 阅读约需11分钟

一、准备工作(必做)

1. 环境要求验证

表格
组件最低要求推荐版本检查命令
Nginx1.25.0+(实验性)1.25.5+/1.30+nginx -v
OpenSSL1.1.1q+3.0.0+/QuicTLSnginx -V 查看编译参数
Linux 内核4.18+(支持 UDP GSO)5.0+uname -r
宝塔面板7.9.0+11.7.0+面板首页查看版本

2. 关键前提条件

  • 网站已配置HTTPS 证书(HTTP/3 仅支持加密连接)
  • 服务器安全组与宝塔防火墙均放行 UDP 443 端口(HTTP/3 基于 QUIC 协议,运行在 UDP 443)
  • 建议使用TLS 1.3(HTTP/3 最佳实践,部分客户端可能强制要求)

二、升级 Nginx 到支持 HTTP/3 的版本

步骤 1:升级宝塔面板(可选但推荐)

plaintext
# 登录SSH执行面板升级命令
curl https://download.bt.cn/install/update6.sh | bash

步骤 2:安装 / 升级 Nginx 到 1.25.5 + 版本

  1. 进入宝塔面板 → 软件商店Nginx设置
  2. 点击版本切换,选择1.25.5或更高版本(如 1.30)
  3. 等待编译安装完成(约 5-10 分钟,取决于服务器配置)

步骤 3:验证 Nginx 版本

plaintext
nginx -v
# 预期输出:nginx version: nginx/1.25.5 或更高

三、配置 HTTP/3(核心步骤)

方法 A:自动配置(宝塔 11.7.0+,推荐)

  1. 进入站点 → 设置SSL
  2. 关闭 SSL,然后重新启用 SSL(自动添加 HTTP/3 配置)
  3. 前往安全系统防火墙,放行UDP 443 端口

方法 B:手动配置(通用兼容)

  1. 进入站点 → 设置配置文件
  2. server块中添加以下配置:
nginx
# 原有HTTPS监听
listen 443 ssl http2;
# 添加HTTP/3监听(关键)
listen 443 quic reuseport;  # reuseport用于多进程负载均衡
# 启用HTTP/3
http3 on;
# 强制TLS 1.3(推荐)
ssl_protocols TLSv1.3;
# 告诉浏览器支持HTTP/3(关键)
add_header Alt-Svc 'h3=":443"; ma=86400';  # ma=86400表示缓存1天
  1. 完整配置示例:
nginx
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen 443 quic reuseport;  # HTTP/3监听
    server_name example.com;

    http3 on;  # 启用HTTP/3
    http2 on;  # 保留HTTP/2支持

    # SSL证书配置(与HTTP/2共用)
    ssl_certificate /path/to/ssl/fullchain.pem;
    ssl_certificate_key /path/to/ssl/private.key;

    ssl_protocols TLSv1.3;  # 仅启用TLS 1.3(推荐)
    ssl_prefer_server_ciphers on;
    ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;

    # 关键:告诉浏览器支持HTTP/3
    add_header Alt-Svc 'h3=":443"; ma=86400';

    # 其他配置...
    root /www/wwwroot/example.com;
    index index.php index.html;
}
  1. 点击保存,然后重启 Nginx使配置生效

四、防火墙配置(必做)

HTTP/3 基于 UDP 协议,必须放行 UDP 443 端口,否则无法建立连接。

1. 宝塔面板防火墙设置

  1. 进入安全系统防火墙
  2. 点击放行端口,输入443,选择UDP协议,点击确定

2. 服务器安全组设置(云服务器)

  1. 登录云服务商后台(阿里云 / 腾讯云等)
  2. 找到对应服务器的安全组配置
  3. 添加入站规则:端口 443,协议 UDP,授权对象 0.0.0.0/0 和::/0

五、验证 HTTP/3 是否生效

方法 1:在线检测工具(推荐)

方法 2:浏览器内置工具

  1. Chrome/Edge
    • 访问 chrome://net-internals/#quic
    • 点击Start Recording,然后访问你的网站
    • 查看是否有QUIC_SESSION记录,状态码为 200
  2. Firefox
    • 访问 about:networking#quic
    • 查看连接列表中是否有你的域名,协议显示为h3