现在大部分网站都在用 HTTP/2,但 HTTP/3 基于 QUIC,延迟更低、抗丢包更强,移动网络体验提升特别明显。
Nginx 从 1.25.0 开始正式支持 HTTP/3,配置其实很简单,几步就能搞定。
先看你的 Nginx 支不支持 HTTP/3
nginx -V #大写V
如果输出里有 --with-http_v3_module,说明可以直接用。
没有的话,需要升级到官方主线版或自己编译。
放行 UDP 443(非常重要)
HTTP/3 走 UDP,不开放 443 UDP 绝对用不了。
sudo ufw allow 443/udp
云服务器还要在后台安全组里开 UDP 443。
Nginx 站点配置(直接复制改域名即可)
server {
listen 443 quic reuseport;
listen 443 ssl http2;
server_name yourdomain.com;
# SSL 证书(你自己的路径)
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# HTTP/3 必须 TLS1.3
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 告诉浏览器支持 HTTP/3
add_header Alt-Svc 'h3=":443"; ma=86400';
# 可选优化
ssl_early_data on;
quic_gso on;
quic_retry on;
# 其他常规配置
root /var/www/html;
index index.html;
}
# 80 端口跳转 HTTPS
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
检查配置并重启 Nginx
sudo nginx -t
sudo systemctl reload nginx
验证是否成功开启 HTTP/3
打开 Chrome / Edge → F12 开发者工具 → 网络面板
刷新页面,在 “协议” 列看到 h3 就说明成功了。
也可以用 curl 看响应头:
curl -I https://www.58jb.com
出现 Alt-Svc: h3=":443" 就是配置正常。
常见问题
- 一直是 HTTP/2,没变成 h3 多半是 UDP 443 没放行,或证书不合法。
- Nginx 报错
invalid parameter "quic"版本太低,必须 ≥1.25.0 且带 http_v3_module。 - Safari 打不开 确保开启 TLSv1.3,不要只开 TLS1.2。