准备
因为 Apache Httpd 没有很好的 package 支持所以很多发行版都都得依赖官方源,如果官方源没有的话,就只有编译安装一门了。
- Apache Httpd 从 2.4.17 开始支持 mod_http2 ,所以我们至少需要大于 .17 版本的才行。
- Apache Httpd 对 HTTP/2 的支持还需要版本大于 1.0.2 的 OpenSSL 和 libnghttp2 库的支持。
目前支持的发行版:
Ubuntu 16.04 ( apache2=2.4.18) | Debian 9 ( apache2= 2.4.23 或 更新) | Fedora 23/24
曲线支持
一、Ubuntu 12.04/14.04 可以通过 PPA 源 ppa:ondrej/apache2 或者安装最新的 Apache Httpd 二、CentOS7 可以通过安装 yum install mod_http2 安装相关依赖,具体可能更加复杂,可以查阅一下其他教程。
编译安装
在你原来的编译参数中加入:--enable-http2 ,这里解释一下编译参数: –enable-http2 让 Apache Httpd 可以实现 HTTP/2 协议 –with-nghttp2=<dir> 如果你的 libnghttp2 是编译的,那么通过这个定义的编译好的目录
Windows
WIndows 的话,目前 UPUPW 一键包的默认 Apache2 就是 2.4.17 之后会更新 XAMPP 也会安装最新的 Apache Httpd 版本。
配置
软件源
通过软件源安装的用户,需要在 /etc/apache2/mods-enabled 或者 /etc/httpd/mod-enabled 中创建一个 http2.load 文件 ,里面加入 LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so 然后保存,重启服务。 CentOS\Fedora: service httpd restart Debian\Ubuntu: service apache2 restart
编译/windows
在 httpd.conf 中,找到 #LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so 将前面的 # 取消,如果没有这句话,就直接添加去掉 # 后的语句。 然后保存,重启服务。
配置 SSL
待写
开启 H2
<VirtualHost x.x.x.x:443 >
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
...
...
</VirtualHost>
其实 80 端口也可以加入 Protocols h2c http/1.1 ,但是暂时没有浏览器加入对 80 端口的 http/2 支持。 不过不要忘记重启。


