HTTP/2 与 HTTP/3 升级教程

HTTP/2 和 HTTP/3 是新一代 HTTP 协议,通过多路复用、头部压缩、服务器推送等技术大幅提升 Web 性能。HTTP/3 更是基于 QUIC 协议替代了 TCP,进一步降低延迟。本文将详细介绍如何在搬瓦工 VPS 的 Nginx 上启用这两个协议。

一、协议对比

  • HTTP/1.1:每个连接同时只能处理一个请求,需要多个 TCP 连接才能并行加载。
  • HTTP/2:单连接多路复用,所有请求共享一个 TCP 连接。HPACK 头部压缩减少冗余数据。需要 HTTPS。
  • HTTP/3:基于 QUIC(UDP),内建加密,0-RTT 连接建立。解决 TCP 的队头阻塞问题。需要 HTTPS。

二、前置条件

# 检查 Nginx 版本(HTTP/2 需要 1.9.5+,HTTP/3 需要 1.25.0+)
nginx -v

# 检查 OpenSSL 版本(需要 1.0.2+,推荐 1.1.1+)
openssl version

# 确认已安装 SSL 证书
# 推荐使用 Let's Encrypt 免费证书
apt install certbot python3-certbot-nginx -y
certbot --nginx -d your-domain.com

三、启用 HTTP/2

# 编辑 Nginx 配置
cat > /etc/nginx/sites-available/default <<'EOF'
server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;

    server_name your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    # SSL 优化参数
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # HSTS(强制 HTTPS)
    add_header Strict-Transport-Security "max-age=63072000" always;

    root /var/www/html;
    index index.html;
}
EOF

nginx -t
systemctl reload nginx

四、验证 HTTP/2

# 使用 curl 检测
curl -I --http2 https://your-domain.com/
# 查看输出中是否包含 HTTP/2

# 使用 nghttp2 工具
apt install nghttp2-client -y
nghttp -nv https://your-domain.com/

# 浏览器开发者工具中查看
# 在 Network 面板的 Protocol 列可以看到 h2

五、启用 HTTP/3(QUIC)

HTTP/3 支持需要 Nginx 1.25.0 以上版本并在编译时包含 QUIC 支持。

5.1 安装支持 QUIC 的 Nginx

# 方法一:使用官方 mainline 仓库
cat > /etc/apt/sources.list.d/nginx.list <<'EOF'
deb http://nginx.org/packages/mainline/ubuntu/ jammy nginx
EOF

wget -O- https://nginx.org/keys/nginx_signing.key | gpg --dearmor > /etc/apt/trusted.gpg.d/nginx.gpg
apt update
apt install nginx -y

# 方法二:从源码编译(支持 QUIC)
cd /usr/src
wget http://nginx.org/download/nginx-1.27.0.tar.gz
tar xzf nginx-1.27.0.tar.gz
cd nginx-1.27.0

./configure \
  --with-http_ssl_module \
  --with-http_v2_module \
  --with-http_v3_module \
  --with-stream_quic_module

make -j$(nproc)
make install

5.2 配置 HTTP/3

server {
    # HTTP/2 over TCP
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;

    # HTTP/3 over QUIC
    listen 443 quic reuseport;
    listen [::]:443 quic reuseport;

    server_name your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    # TLS 1.3 是 HTTP/3 必需的
    ssl_protocols TLSv1.2 TLSv1.3;

    # 启用 0-RTT(可选,有重放攻击风险)
    ssl_early_data on;

    # 通知浏览器支持 HTTP/3
    add_header Alt-Svc 'h3=":443"; ma=86400' always;

    # QUIC 连接参数
    quic_retry on;

    root /var/www/html;
    index index.html;
}

5.3 防火墙配置

# HTTP/3 使用 UDP 443 端口,需要开放
ufw allow 443/udp

# 或使用 iptables
iptables -A INPUT -p udp --dport 443 -j ACCEPT

六、验证 HTTP/3

# 使用 curl(需要支持 HTTP/3 的 curl 版本)
curl --http3 -I https://your-domain.com/

# 安装支持 HTTP/3 的 curl
apt install curl-http3 -y
# 或从源码编译
# 需要 ngtcp2 和 nghttp3 库

# 使用在线工具验证
# https://http3check.net/

七、HTTP/2 性能优化

# 在 http 块中优化 HTTP/2 参数
http2_max_concurrent_streams 128;
http2_recv_buffer_size 256k;

# 大文件传输优化
http2_chunk_size 16k;

# 服务器推送(预加载关键资源)
location / {
    http2_push /css/style.css;
    http2_push /js/app.js;
}

八、SSL/TLS 优化

# OCSP Stapling(加速证书验证)
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

# SSL 会话复用
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;

# TLS 1.3 0-RTT
ssl_early_data on;
proxy_set_header Early-Data $ssl_early_data;

总结

HTTP/2 的多路复用和头部压缩对所有网站都有明显提升,建议所有搬瓦工 VPS 用户启用。HTTP/3 进一步改善了高延迟和不稳定网络下的体验,对跨境访问尤其有效。详细的 QUIC 配置可以参考 QUIC 协议服务端配置教程。配合 Brotli 压缩WebP 图片优化 可以实现最佳的 Web 性能。选购搬瓦工 VPS 请查看 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 访问官网。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。