在 Ubuntu 上 开启 Apache2 HTTP/2 协议
一、HTTP2模块的启用
1、提要
前段时间安装了 Ubuntu 16.04 ,Apache2 升级成为了 2.4.18 版本,突然想起来这个版本支持了 HTTP/2 协议,于是尝试命令启动,然后…没有然后了
咦?不是说好了 2.4.17 开始内置 HTTP/2 协议的么?一番查阅,发现原来是 Ubuntu 16.04 是一个 LTS 版本,要稳定为主,而 mod_http2 是试验性的,所以旧不予加入…我去,这不是坑我么,本着不折腾不死星人的个性,开始了疯狂折腾…
2、添加PPA
好吧,官方为了安全原因屏蔽了HTTP2,那找个非官方的不就好了?
在 launchpad 上搜索了一下,发现了 ondrej/apache2 这个源,那就添加 PPA 吧:
sudo add-apt-repository ppa:ondrej/apache2
添加了之后就好办了,更新 Apache2
sudo apt update
sudo apt dist-upgrade
看一眼 Apache2 的版本…已经更新到了 2.4.20,启用 HTTP/2 模块吧,这次成功了,重启 Apache2 就好了
sudo a2enmod http2
sudo service apache2 restart
二、HTTP/2 的配置
1、配置
HTTP/2 的配置区分 HTTP 和 HTTPS 协议,如果您使用 80端口(HTTP) 来访问您的网站,您需要在网站配置文件中添加
<VirtualHost x.x.x.x:80>
Protocols h2c http/1.1…
</VirtualHost>
如果您是 443端口(HTTPS) 的话,添加
<VirtualHost x.x.x.x:443>
Protocols h2 http/1.1…
</VirtualHost>
然后重启Apache
sudo service apache2 restart
2、测试
如果使用的是80端口(HTTP)的话,目前没有浏览器支持80端口的HTTP/2,只能通过 CURL 测试是否开启,测试代码如下:
curl -v –http2 http://<yourserver>/
通常情况下,CURL是没有HTTP2模块的,所以这里需要自己编译,暂时省略该测试,下面测试HTTPS
在火狐中,当你访问了HTTP/2协议的网站时,火狐会发送X-Firefox-Spdy,并设置为h2给服务器,你打开控制台刷新将会看到类似以下的结果
如果你用Chrome的话,你需要打开 chrome://net-internals/#http2 去查看当前使用 HTTP/2 的链接
那么,HTTP/2的性能如何呢?访问下面网址你就知道了
附上测试截图一枚
1 条回复
[…] 一番查阅,原来是 Ubuntu 16.04 是一个 LTS 版本,要稳定为主,而 mod_http2 是试验性的,所以旧不予加。 via 在 Ubuntu 上 开启 Apache2 HTTP/2 协议 […]