负载均衡54 条

HTTP/2 与 QUIC 支持

七层监听通常可开启 HTTP/2 提升并发请求效率;部分产品支持 QUIC(HTTP/3),对弱网移动端体验更友好。开启前确认客户端链路与回源链路都匹配,避免协商不一致。

协议升级要不要开

七层监听通常可以开启 HTTP/2,用多路复用与头部压缩提升并发请求效率;部分产品还支持 QUIC(HTTP/3),基于 UDP 传输,对弱网与移动端体验更友好。开启前要确认证书配置正确、客户端链路支持,并保留回退路径——协商不上时必须还能退回旧协议。

基本信息

HTTP/2多路复用与头部压缩,通常需在 HTTPS 上启用
QUIC / HTTP/3基于 UDP 传输,改善弱网表现,客户端覆盖逐步扩大
前提条件证书配置正确、客户端支持对应协议
协商机制通过 ALPN 协商,客户端不支持则回退到旧协议
验证方式用 curl 的协议选项观察实际使用的版本

典型使用场景

  • 页面资源请求数多,开启 HTTP/2 降低连接开销
  • 移动端占比高的业务,评估 QUIC 对弱网环境的改善
  • 排查「协议协商不上」导致的部分客户端异常
  • 压测时确认客户端实际使用的协议版本,避免测错对象
  • 面向旧客户端的产品保留 HTTP/1.1 回退能力

验证协商到的协议

验证协商到的协议
# 需要 curl 编译时支持 HTTP/2
curl -sI --http2 https://example.com/ | head -3
# 需要 curl 支持 HTTP/3,且网络放行 UDP 443
curl -sI --http3 https://example.com/ 2>/dev/null | head -3
# 查看服务端提供的 ALPN 协议列表
openssl s_client -connect example.com:443 -alpn h2,http/1.1 </dev/null 2>/dev/null | grep -i alpn

协议特性对照

协议传输层主要收益
HTTP/1.1TCP兼容性最好,连接复用受限
HTTP/2TCP多路复用、头部压缩
HTTP/3UDP(QUIC)弱网与移动场景表现更好
回退由 ALPN 决定协商失败时退回旧协议
HTTP/2 及以上无法像 HTTP/1.1 那样直接读明文抓包,验证时优先看客户端协商结果与服务端日志。
部分企业与运营商网络会屏蔽 UDP,QUIC 在这些链路上不可用;上线时务必保留 HTTP/2 或 HTTP/1.1 回退路径。

开启前确认项

  • 证书已就绪并覆盖全部对外域名
  • 客户端确认支持对应协议版本
  • 拨测与压测覆盖不同网络环境
  • 保留回退路径并验证回退行为

观测能力的限制

HTTP/2 及以上无法像 HTTP/1.1 那样直接阅读明文,排查更依赖客户端协商结果、服务端日志与监控指标;升级协议之前先把可观测性补齐,否则出问题时缺少抓手。

易错点

  • 面向旧客户端全面启用 QUIC,未保留回退路径,部分用户直接无法访问
  • 防火墙屏蔽 UDP 而被测网络恰好放行,上线后才发现一片区域不可用
  • 开启了 HTTP/2 但后端或中间层不支持,出现协商异常与偶发失败
  • 压测时没确认客户端实际用的协议,测出来的性能与实际用户不一致

数据来源与参考

  • 阿里云 ALB HTTP/2 文档
  • 腾讯云 CLB QUIC 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌