Hexo 网站支持 HTTP/2

HTTP/2 具有以下的特性:

  • 采用二进制传输数据
  • 基于流的多路复用
  • 头部压缩
  • 服务端推送

由于 HTTP/2 可以提升网站访问速度,因此,本人决定对个人站点 Leo 的博客 进行 HTTP/2 升级改造。

leehao.me 网站采用 Ngninx + Hexo + NexT 实现,有关部署细节可以参考之前的文章 《在阿里云部署 Hexo 网站》 以及 《Hexo 网站配置免费阿里云证书》

Nginx 从版本 1.9.5 支持 HTTP/2,因此,为使网站支持 HTTP/2,只需要对 nginx 配置进行调整。先查看 Nginx 版本:

1
nginx -v

输出:

nginx version: nginx/1.12.2

说明 nginx 版本已符合要求。查看 nginx 是否已安装 http 2 模块:

1
nginx -V

可以看到 --with-http_v2_module 模块输出:

…–with-http_v2_module…

查看 openssl 版本:

1
openssl version

输出:

OpenSSL 1.0.2k-fips 26 Jan 2017

openssl 版本只需要大于 1.0.2e 即可,如果不符合版本要求,请自行对 openssl 版本进行升级。

配置 nginx

Nginx 开启 HTTP/2很简单,只需要修改 nginx 网站配置 /etc/nginx/conf.d/hexo.conf,在 443 端口后增加 http2

1
2
3
4
5
6
server {
listen 443 ssl http2;
server_name leehao.me;
charset utf-8;
......
}

Nginx 配置修改后,采用命令测试配置是否正常:

1
nginx -t

输出正常后,对 nginx 进行重启:

1
nginx -s reload

检验网站是否支持 HTTP/2

Chrome 浏览器输入地址:https://leehao.me/,然后在浏览器 Console 输入:

1
window.chrome.loadTimes()

然后查看 connectionInfonpnNegotiatedProtocol 的值,如果为 H2,即说明网站已支持 HTTP/2,如图所示:

参考资料