HTTP2试用小记

原文:https://www.clarencep.com/2016/11/17/upgrade-nginx-to-support-http2/

这两天把公司的网站升级到了全站https. 顺便瞄到了HTTP2的浏览器支持情况

支持得还都蛮好的嘛。忍不住试用了一把HTTP2 – 就直接拿本博客来做示例了。

升级nginx

主流浏览器基本上都支持了HTTP2,但是nginx只有升级到1.10以上版本才行 – 鄙站之前用的还是nginx 1.6的某个版本。

更新了下apt-get,发现仓库中没有1.10版本 – 囧 – 只好自己编译吧:

首先,下载nginx和openssl:

1234567
cd /usr/local/src

wget https://nginx.org/download/nginx-1.11.6.tar.gztar xzf nginx-1.11.6.tar.gz

wget https://www.openssl.org/source/openssl-1.1.0c.tar.gztar xzvf openssl-1.1.0c.tar.gz

然后,编译nginx:

12345678910111213
cd nginx-1.11.6./configure --prefix=/usr/local/nginx \  --conf-path=/etc/nginx/nginx.conf \  --with-openssl=../openssl-1.1.0c \  --with-http_v2_module \  --with-http_ssl_module \  --with-http_gzip_static_module

make && sudo make install

# 为了方便全局执行,则创建个符号链接:sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

接着,就是移植老的配置了,老的配置都可以直接使用,直接拷贝过来即可。
最后,启用HTTP2 – 目前HTTP2只能和ssl(https)一起使用,只要修改下listen语句即可:

1234
# 老的配置:# listen 443;# 新的配置(启用http2):  listen 443 ssl http2;

别忘了重启nginx (sudo nginx -s reload).

尝试通过HTTP2访问

搞定nginx后,随手拿个chrome就可以使用HTTP2了 – chrome 49及以上版本都支持HTTP2,还好chrome会自动升级,基本不用担心chrome太老。

打开F12查看下HTTP头部,果然Request Headers都不一样了:

这些:authority:method 和 :path 等冒号打头的就是HTTP2的特征之一 – 手边没有抓包工具,只能这样粗浅的判断了。

看看HTTP2的流水:

再比比HTTP1.1的流水:

HTTP2的流水简洁多了,有没有!

性能PK

HTTP2的性能一般应该比HTTP1.1的高一些,但是,可不一定哟:

上图是本博客首页在相同nginx、相同PC、相同网络条件下对HTTP2和HTTP1.1分别测试的PK结果。 可见虽然HTTP2的网络加载时间(Load)比HTTP1.1要短,但是DOM渲染时间(DOMContentLoaded)却比HTTP1.1要长。。。

可能是由于本博没有专门为HTTP2优化所至。也可能是浏览器渲染没有为HTTP2优化的缘故。

最后总结一句:HTTP2入坑要谨慎。

时间: 2024-08-25 05:44:00

HTTP2试用小记的相关文章

环信 iOS Demo 试用小记

一.下载SDK和Demo 下载地址: http://www.easemob.com/sdk/ 直接下载:http://downloads.easemob.com/downloads/iOSSDK-20150710.zip 二.解压.用xcode打开(Xcode为6.4版本) 修改 Team账号为自己的开发者账号 三.编译 出现21个警告,在真机上运行正常. 版权声明:本文为博主原创文章,未经博主允许不得转载.

开源的PaaS平台

原文地址:https://blog.csdn.net/mypods/article/details/9366465 1.Stackato Stackato 是一个应用平台,用来创建私有.安全和灵活的企业PaaS平台,可基于任何堆栈和云平台,从桌面到数据中心,Stackato 可简化开发.发布.移植.扩展.管理和监控云上的应用. Stackato是基于Cloud Foundry的开源项目,并进行扩展以适应企业的需要. 2.AppScale AppScale是一个平台,允许用户发布和托管自己的Goo

零基础也能用Linux ---深度Linux使用小记

零基础也能用Linux ---深度Linux使用小记 Deepin是由武汉深度科技有限公司开发的Linux发行版.Deepin 是一个基于 Linux 的操作系统,专注于使用者对日常办公.学习.生活和娱乐的操作体验的极致,适合笔记本.桌面计算机和一体机,它是一个基于Debian的本地化衍生版,系统集成了C.Java.Python编译环境.WPS办公软件.Flash插件.腾讯QQ.各种输入法以及漂亮的字体.还可以灵活使用各种Windows下的工具软件,为你节省了很多配置系统的时间. 总的来说它的宗

windows server 2008 enterprise r2 x64 激活小记

前几天给客户安装了两个 windows windows server 2008 enterprise r2 版本的系统,发现存在几个小问题,不得不记录一下 问题1:windows 2008 64位的企业版支持的内存居然只有32个G,服务器有64个G,显示可用内存32个G.不过版本既然是客户要求的,我也就不说啥了. 问题2:之前的旧机器换2008的系统,一般没有序列号,我就自作聪明的去网上找了个无名的激活软件,一般来说还是激活了. 结果过了半个月,发现机器频繁自动关机.依然要处理.于是跟客户说明后

Kendo UI使用小小记

之所以说小小记,是因为我根本没有好好用它,只是正好前些日子接触了一下,觉得还不错,随手记记~ 契机 我从加入现在这个公司以来,半专业的承担了很多前端相关的事情,用过不少前端框架,也为框架和原生的页面写了不少部件和功能,对于IE系列浏览器的憎恶也与日俱增.“每个程序员都有一个框架梦”,我一直也想着要写一个适用于自己和自己公司的前端框架,同事和领导有时候也会这么对我期望,而我自己很清楚,没有时间没有精力其实都是借口,最大的问题,还是没有能力没有经验. 我是jQuery派,当然MooTools.Doj

深度学习主机攒机小记

本文來源網址:http://www.52nlp.cn/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%BB%E6%9C%BA%E6%94%92%E6%9C%BA%E5%B0%8F%E8%AE%B0 Update: 这篇文章写于一年以前,这一年深度学习的大潮继续推进,1080也升级到1080TI了,攒机也有了更多更好的选择.最近更新了一篇文章:<从零开始搭建深度学习服务器:硬件选择>,可以看完下文后(主要提供了一些选择的思路),再来看最新的这篇(主要提供了一

算法踩坑小记

经过前面研究图像算法和近阶段研究视频和音频算法的经历经验. 在2019年快要来临的时候,写下这篇小记. 目的很简单,总结过往,展望未来. 这里列举一些本人在算法上踩过的坑和出坑思路. 主要是数据标准化问题. 1.临界值问题  (最大值,最小值,阈值,无穷小,无穷大) 最早做一键修图的时候,在这个坑上踩了太多次. 简单描述就是, (示例伪代码例子仅供理解思考参考,不具有实际意义) 1.1 梯度消失 如果一个算法在计算过程中,存在最小值(无穷小,一般为0或接近0的数), 那就很可能出现"梯度消失&q

试用时间序列数据库InfluxDB

Hadoop集群监控需要使用时间序列数据库,今天花了半天时间调研使用了一下最近比较火的InfluxDB,发现还真是不错,记录一下学习心得. Influx是用Go语言写的,专为时间序列数据持久化所开发的,由于使用Go语言,所以各平台基本都支持.类似的时间序列数据库还有OpenTSDB,Prometheus等. OpenTSDB很有名,性能也不错,但是基于HBase,要用那个还得先搭一套HBase,有点为了吃红烧肉自己得先去杀猪,烫皮,拔毛的感觉.Prometheus相关文档和讨论太少,而Influ

SpringBoot - 二零一七0421小记

一.SpringBoot使用起来比起SpringMVC更便捷,在注解上的小变化,我记录了下面几个: @Controller + @ResponseBody = SpringMVC中用@RestController来代替前面两个注解,通过这个注解,可以将所有的前端http请求放入SpringBoot的Controller容器中,并返回json格式的数据给前端 @RequestMapping(value={"/hello","/hi"},method=RequestMe