Apache启用HTTP/2需满足版本≥2.4.17、加载mod_http2模块、强制HTTPS(TLS≥1.2+ALPN)、虚拟主机中配置Protocols h2 http/1.1,并禁用Server Push改用103 Early Hints,配合前端代码分割与资源预加载方可发挥多路复用优势。

HTTP/2 本身不直接“加速”Apache,但它通过底层传输机制的改进,让资源加载更高效、更并行——前提是正确配置且配合合理使用。真正提升访问速度的关键,在于释放 HTTP/2 的核心能力,并避免常见误用。
启用 HTTP/2 前必须满足基础条件
- Apache 版本 ≥ 2.4.17(推荐 2.4.53+ 或 2.4.59+,修复多个 HTTP/2 稳定性问题)
- 启用
mod_http2模块(编译时需含--enable-http2,RPM 包通常默认包含) - 必须运行在 HTTPS 下(HTTP/2 在主流浏览器中仅对 TLS 连接生效)
- TLS 配置支持 ALPN 协议协商(OpenSSL ≥ 1.0.2,且 Apache 编译链接的是支持 ALPN 的版本)
正确启用 HTTP/2 的关键配置
在主配置文件(如 /etc/httpd/conf/httpd.conf 或 /etc/apache2/mods-enabled/http2.conf)中确保:
- 加载模块:
LoadModule http2_module modules/mod_http2.so - 在
<VirtualHost *:443>块内添加:Protocols h2 http/1.1
注意:
h2必须放在http/1.1前,否则协商失败会退回到 HTTP/1.1
Apache Superset Dashboard and SQL Exploration Skill下载Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 确保 SSL 配置完整,含有效的证书链和现代 cipher suite(例如禁用 TLS 1.0/1.1,优先 TLS 1.3)
关闭 Server Push,改用 103 Early Hints(更可控)
Server Push 在实际场景中容易推送冗余资源、干扰缓存、增加首字节延迟。Chrome 96+ 已移除支持,Firefox 也已弃用。
建议做法:
- 显式禁用:
H2Push off(加在 VirtualHost 内) - 若需预加载提示,改用
103 Early Hints:Header always set Link "</js/runtime.js>; rel=preload; as=script"
配合前端
<link rel="preload">使用,由客户端自主决定是否加载,更符合现代实践。
搭配前端优化才能见效
HTTP/2 的多路复用优势,只在“多个小资源并发请求”时明显。若前端仍打包成单个几 MB 的 bundle.js,HTTP/2 几乎无感。应配合:
- Vue/React 项目启用路由级代码分割(
import()动态导入) - 关键资源(字体、核心 CSS、runtime)用
<link rel="preload">提前声明 - 静态资源开启 Brotli 压缩(比 gzip 更高效),并设置强缓存头(
Cache-Control: public, max-age=31536000)
验证是否真正生效
- 浏览器开发者工具 → Network 标签页 → 刷新页面 → 查看 Protocol 列是否显示
h2 - 命令行验证:
curl -I --http2 https://yourdomain.com,响应头中应含HTTP/2 200 - 检查 Apache 错误日志,确认无
AH03097: HTTP/2 not supported类报错
不复杂但容易忽略

















