升级HTTP 2.0历程

21. 5月 2017 服务器 2

最近服务器频繁受到攻击,挂了一片服务,实不相瞒1G内存小服务器随便一打就倒了,而且我又是那种懒得管的人。。趁这次重新配置了一圈,升级了一下组件,其中就包括nginx升级和http2.0的部署。

HTTP 2.0是由SPDY发展而来的,两者的设计差不多:压缩、多路复用、安全性,但是二者的实现有区别,所以不互相兼容。关于HTTP 2.0的相关技术细节有几篇博文通俗易懂,推荐一下,就不复述了:

HPACK:HTTP/2 头部压缩技术介绍  HPACK完全解析

Negotiation:HTTP/2协议协商机制

另外还有官方文档。不过我是不推荐一上来直接读官方文档的,效率会比较低,但是最后还是要读的……

 

首先要升级https。这一步是必须的,虽然官方并没有说http2需要跟https绑定,但是目前浏览器都是这么干的,所以想要在浏览器上实现http2,网站就必须是https的。

首先需要申请https证书。我看了一些知乎讨论之后尝试了两种:

  1. CheapSSLSecurity的付费版,便宜的一年3刀,限定域名的,对博客来说够用,按页面提示输入信息就可以了,下单后两天一直PENDING状态。。。怒退款。。。
  2. 阿里云的证书服务,提供了免费的DV SSL证书,是Symantec提供的(对这个公司莫名有好感?),也是填入基本信息,十分钟左右就完成了,可以直接在页面下载.pem和.key文件,准备配置服务器了。

Nginx是从1.9版本开始支持http2的,现在最新版本是1.12,但是centos仓库远没有支持到这个版本,需要编译安装。