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:
1 |
cd /usr/local/src wget https://nginx.org/download/nginx-1.11.6.tar.gz |
然后,编译nginx:
1 |
cd nginx-1.11.6 |
接着,就是移植老的配置了,老的配置都可以直接使用,直接拷贝过来即可。
最后,启用HTTP2 – 目前HTTP2只能和ssl(https)一起使用,只要修改下listen语句即可:
1 |
# 老的配置: |
别忘了重启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入坑要谨慎。
HTTP2试用小记的更多相关文章
- Ext.Slider的试用小记
最近需要做一个滑动条,动态改变地图动画播放的速度.实在没有自己用js写一个的那个水平,于是找到了Ext.Slider,ExtJS的版本是3.3.0. new Ext.Slider({ id: 'pla ...
- 转:Raspberry Pi(树莓派)试用小记
近期入手一树莓派卡片机,体验了一下它的强大,写篇报告,推广一下哈! 机器截图: 基础参数: CPU:700 MHz, ARM11 内存:512M(还有一种是256M的) 支持GPU加速(高清视频无压力 ...
- Raspberry Pi上手
2013-05-21 买的树莓派终于到手了,嘿嘿.我在官方代理ICKEY买的,是英国版,B型. 上手教程可以根据Getting Started with Raspberry Pi(网上有电子版免费下载 ...
- 在zend studio 9.* 中使用phpunit进行单元测试
单元测试在用PHP开发大型项目时必备的减少测试难度和提高测试效率的利器,而PHPUnit是php做单元测试时使用范围最广的一个.如果在window系统中开发,就要调用控制台来运行phpunit,非常的 ...
- 【CFD之道】2017年原创文章汇总
1 Fluent案例(21篇) [Fluent案例]01 空气流经障碍物 [Fluent案例]02:Tesla阀 [Fluent案例]03:RAE2822翼型外流场计算 [Fluent案例]04:多孔 ...
- 【CFD之道】2018年原创文章汇总
以下是公众号CFD之道2018年的全部原创文章,共计210篇. 1 Fluent验证案例[60篇] Fluent验证案例02:通过均匀热通量管道层流流动 Fluent验证案例03:管道中湍流流动压降计 ...
- 开源的PaaS平台
原文地址:https://blog.csdn.net/mypods/article/details/9366465 1.Stackato Stackato 是一个应用平台,用来创建私有.安全和灵活的企 ...
- 在OpenShift上托管web.py应用
一.背景 最近在学习web.py,跟随官网的cookbook和code examples一路敲敲打打,在本地访问了无数遍http://0.0.0.0:8080/,也算是对web.py有了基本的认识.为 ...
- nginx http2 push 试用
nginx 已经很早就支持http2,今天证书过期,重新申请了一个,同时测试下http2 的push 功能 环境准备 证书 这个结合自己的实际去申请,我使用免费的letsencrypt,支持泛域名证书 ...
随机推荐
- gdb 常用内容
gdb exegdb exe coregdb -p info m TAB ^関数の先頭 info b ^list the breakpoint set args -a test ^引数設定 show ...
- IntelliJ IDEA 2016
IntelliJ IDEA 2016 注册码 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1Ii ...
- 配置appium 1.6.3 for MAC
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } 安装 ...
- linux发行版基础目录
linux发行版基础目录 linux 基础目录 linux基础目录 目录 作用 / 根目录,起源 /boot linux引导启动目录 /lib 库目录 /bin 常用内部命令 /sbin 常用内部管理 ...
- Window通过cmd查看端口占用、相应进程、杀死进程
在windows下启动程序时候经常出现端口占用, 修改本程序端口是一种解决思路,但是更多时候希望直接杀掉占用端口的程序: 一. 查看所有进程占用的端口 在开始-运行-cmd,输入: netsta ...
- HTML页面优化
第一步:加载优化 减少HTTP请求. 因为手机浏览器同时响应请求为4个请求(Android支持4个,iOS 5后可支持6个),所以要尽量减少页面的请求数,首次加载同时请求数不能超过4个.a) 合并CS ...
- first Automation
//创建一个容器 CEmbWordCntrItem * pItem = NULL; CEmbWordDoc * pDoc = GetDocument(); pItem = new C ...
- RHEL 6.0服务器安装Oracle 11G R2 最终版
RHEL6安装Oracle 11g R2最终版 结合网上教程 服务器实战所得 1.使用DVD做yum源新建dvd挂载目录[root@fxq-dp ~]# mkdir /media/iso进入到DVD挂 ...
- C++ 多态、虚函数机制以及虚函数表
1.非virtual函数,调用规则取决于对象的显式类型.例如 A* a = new B(); a->display(); 调用的就是A类中定义的display().和对象本体是B无关系. 2. ...
- Scala学习 —— 元组&映射
再说集合之前,我们先来回顾一下映射&元祖 映射是键/值对偶的集合,Scala有一个通用的叫法--元组,也就是n个对象的聚集,并不一定要相同类型的.对偶不过是一个n=2的元祖.元祖对于那种需要将 ...