开启HTTP/2

作者:杨润炜
日期:2016/3/9 12:25

好久前就听说Http2.0,听说它比1版本有性能上的提升并且还有主动把请求推送到客户端的功能。因为开启http2.0需要先实现https,并且nginx版本需要在1.9以上,刚好本站满足这样的要求。今天终于压制不住好奇,搞了一下本站对http2.0的支持。

关于HTTP/2及其优点

HTTP/2

HTTP/2(超文本传输协议第2版,最初命名为HTTP 2.0),是HTTP协议的的第二个主要版本,使用于万维网。HTTP/2是HTTP协议自1999年HTTP 1.1发布后的首个更新,主要基于SPDY协议。

优点

1、采用二进制格式传输数据,而非文本格式,二进制格式在协议的解析和优化扩展上带来更多的优势和可能;
2、对消息头进行压缩传输,能够节省消息头占用的网络的流量,而 http1.1 每次请求,都会携带大量冗余头信息,浪费了很多带宽资源,头压缩能够很好的解决该问题;
3、多路复用,就是多个请求都是通过一个 TCP 连接并发完成,http1.1 虽然通过pipeline也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 http2.0做到了真正的并发请求,同时,流还支持优先级和流量控制;
4、服务器推送,服务端能够更快的把资源推送给客户端,例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求,当客户端需要的时候,它已经在客户端了

HTTP/2站点的优势

1,提升网站访问速度;
2,降低服务器压力;
3,部分替代异步加载的使用;
4,保护网站安全。

如何开启HTTP/2

哇,看到HTTP/2有这么多优点,真想马上就换上。下面为大家讲述下本站是如何利用nginx开启HTTP/2的。

nginx加入http_v2_module模块

nginx版本需要在1.9以上,并且需要有http_v2_module模块,如果没有,请重新编译。本站有重新编译nginx的文章。
具体实现的话,只需要把相应代码修改成以下即可:

  1. ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_v2_module
修改nginx配置

需要修改的配置很简单,代码如下:

  1. server {
  2. listen 443 ssl http2;
  3. ...
  4. }

只需要在之前的ssl后加上http2,重新启动nginx即可。

验证是否开启

在nginx日志中输出$request变量,tail -f 的形式看下nginx的日志,然后访问站点,如果输出有HTTP/2.0即表示开启成功。

参考

HTTP/2
Nginx HTTP 2 的编译和配置
HTTP2.0来了,看看哪些优点值得你更换
Module ngx_http_v2_module

感谢您的阅读!
如果看完后有任何疑问,欢迎拍砖。
欢迎转载,转载请注明出处:http://www.yangrunwei.com/a/41.html
邮箱:glowrypauky@gmail.com
QQ: 892413924