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 | server { |
Nginx 配置修改后,采用命令测试配置是否正常:
1 | nginx -t |
输出正常后,对 nginx 进行重启:
1 | nginx -s reload |
检验网站是否支持 HTTP/2
Chrome 浏览器输入地址:https://leehao.me/,然后在浏览器 Console 输入:
1 | window.chrome.loadTimes() |
然后查看 connectionInfo
和 npnNegotiatedProtocol
的值,如果为 H2
,即说明网站已支持 HTTP/2,如图所示:
参考资料
- https://www.cnblogs.com/chennl/p/10173397.html
- https://blog.fundebug.com/2019/03/07/understand-http2-and-http3/
- https://zhuanlan.zhihu.com/p/26559480
- https://developers.google.com/web/fundamentals/performance/http2
- https://kinsta.com/learn/what-is-http2/
- https://blog.csdn.net/lzxlfly/article/details/90119543
- https://www.jianshu.com/p/d57c55960fba