HTTP/2是自1997年以来HTTP协议的最大更新,开发HTTP/2的主要目的是降低延迟,提高网页加载速度。
HTTP/2兼容前一代的HTTP/1.1,添加异步连接复用,头压缩等特性。更多内容参考:https://en.wikipedia.org/wiki/HTTP/2
HTTP/2目前还在测试阶段,要想让Apache支持HTTP/2,我们需要从源码编译安装。
如果HTTP/2正式发布,我们可通过如下命令开启HTTP/2:
$ sudo a2enmod http2
Ubuntu 16.04编译Apache源代码
1、添加源
$ sudo vim /etc/apt/sources.list
在文件尾添加:
deb-src http://archive.ubuntu.com/ubuntu/ xenial main universe restricted multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main universe restricted multiverse
2、安装依赖包和编译工具
$ sudo apt update
$ sudo apt install git curl build-essential devscripts libnghttp2-dev
3、下载Apache源代码
$ mkdir apache2
$ cd apache2
$ apt source apache2
4、编译
$ sudo apt-get build-dep apache2
$ cd apache2-2.4.18/
$ fakeroot debian/rules binary
生成的deb包:
我们用不到这些包,只使用编译好的mod_http2.so。
安装Apache:
$ sudo apt install apache2
复制编译的好的mod_http2.so模块:
$ sudo cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/
5、开启HTTP/2模块
$ sudo vim /etc/apache2/mods-available/http2.load
写入内容:
LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
<IfModule http2_module>
LogLevel http2:info
</IfModule>
开启http2模块:
$ sudo a2enmod http2
编辑/etc/apache2/apache2.conf文件为主机上所有网站开启http2,在文件为添加:
Protocols h2 http/1.1
或编辑虚拟主机配置文件,为某个网站开启http2。
最后,重启Apache:
$ sudo service apache2 restart