最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Apache 中启用 HTTP/2 如何配置
时间:2026-08-10 16:20:49 编辑:袖梨 来源:一聚教程网
Apache启用HTTP/2需满足三个前提:使用2.4.17或更高版本、启用TLS(HTTPS)、加载mod_http2模块;配置时须在443端口的VirtualHost中添加Protocols h2 http/1.1并确保SSL已正确启用。
Apache 启用 HTTP/2 需要满足三个前提:使用 2.4.17 或更高版本、启用 TLS(HTTPS)、加载 mod_http2 模块。配置本身不复杂,但缺一不可。
确认基础环境是否就绪
先检查 Apache 版本和模块状态:
- 运行
apachectl -v,确保输出中显示 Server version: Apache/2.4.17 或更新版本 - 运行
apachectl -M | grep http2,若无输出,说明mod_http2未加载,需手动启用 - HTTP/2 仅在 HTTPS 虚拟主机下生效(明文 HTTP/1.1 不支持 h2),请确认站点已配置有效 SSL 证书并启用
SSLEngine on
加载 mod_http2 模块
根据系统类型选择方式:
- Debian/Ubuntu 系统通常已自带,只需执行
a2enmod http2,再systemctl restart apache2 - RHEL/CentOS 系统需编辑
/etc/httpd/conf.modules.d/00-base.conf,添加:LoadModule http2_module modules/mod_http2.so - 源码编译安装的 Apache,需确认编译时启用了
--enable-http2,且mod_http2.so存在于modules/目录下
在虚拟主机中启用 h2 协议
不要写在全局主配置里,应放在启用 HTTPS 的 <VirtualHost *:443> 块内:
- 添加协议声明:
Protocols h2 http/1.1 - 推荐同时加上:
ProtocolsHonorOrder on,确保客户端优先协商 h2 - 完整示例片段:
<VirtualHost *:443>ServerName example.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/privkey.pem
Protocols h2 http/1.1
ProtocolsHonorOrder on
DocumentRoot /var/www/html
</VirtualHost>
验证是否生效
重启服务后,用以下任一方式确认:
- 浏览器开发者工具 → Network 标签页 → 刷新页面 → 查看任意请求的 Protocol 列是否显示
h2 - 终端执行:
curl -I --http2 -k https://example.com,响应头首行应为HTTP/2 200 - 在线检测:https://www.php.cn/link/d006bce17dc2f016b118efb55be3e121 输入域名即可自动判断