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 未加载,需手动启用SSLEngine on
根据系统类型选择方式:
a2enmod http2,再 systemctl restart apache2
/etc/httpd/conf.modules.d/00-base.conf,添加:LoadModule http2_module modules/mod_http2.so
--enable-http2,且 mod_http2.so 存在于 modules/ 目录下不要写在全局主配置里,应放在启用 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>
重启服务后,用以下任一方式确认:
h2
curl -I --http2 -k https://example.com,响应头首行应为 HTTP/2 200