109/110

HTTP2.0协议 优势必须使用TLS加密

传输数据量大幅减少 1:以二进制格式传输  2:标头压缩(header做压缩)

多路复用及相关功能 : 消息优先级 (比如样式表先渲染页面那么这个css样式表优先级就高,图片呈现可以慢些就优先级低些)

服务器消息推送 : 并行推送(server-client)主动推消息

 首先要编译进SSL  --with-http_ssl_module 和 --with-http_v2_module

Nginx如何推送资源 目前必须支持SSL 

http2_push_preload指令由header指定推送那些内容

syntax : http2_push_preload on|off

default : off

context : http,server,location

http2_push 指令是由Nginx的配置文件来决定向客户端推送文件

1: 安装 yum install nghttp2

下面看下配置文件

location /{
                root tmp_html;
                http2_push /a.txt; #这里针对tmp_html目录下主动推送a.txt
}

listen  ssl http2 ; # 在证书后面加 http2

然后用 nghttp2 命令查询推送数据

nghttp -ns https://shop**.com.cn

返回结果

***** Statistics *****

Request timing:
responseEnd: the time when last byte of response was received
relative to connectEnd
requestStart: the time just before first byte of request was sent
relative to connectEnd. If '*' is shown, this was
pushed by server.
process: responseEnd - requestStart
code: HTTP status code
size: number of bytes received as response body without
inflation.
URI: request URI

see http://www.w3.org/TR/resource-timing/#processing-model

sorted by 'complete'

id responseEnd requestStart process code size request path
13 +1.75ms +149us 1.60ms 200 4K /
2 +1.79ms * +558us 1.23ms 200 27 /a.txt  我们看到 a.txt被推送过来了

Syntax: http2_max_concurrent_pushes number; 指令是指最大推送并发数默认是10
Default:
http2_max_concurrent_pushes 10;
Context: httpserver
Syntax: http2_recv_timeout time; 指令是指客户端在指定的时间内没有请求的话就断开http2链接
Default:
http2_recv_timeout 30s;
Context: httpserver
Syntax: http2_idle_timeout time; 在这个链接上既没有请求,也没有响应就关闭链接 默认3分钟
Default:
http2_idle_timeout 3m;
Context: httpserver
Syntax: http2_max_concurrent_streams number;最大双向流数
Default:
http2_max_concurrent_streams 128;
Context: httpserver
Syntax: http2_max_field_size size; 昨晚压缩后 http header最大的大小
Default:
http2_max_field_size 4k;
Context: httpserver
Syntax: http2_max_requests number; 链接最大请求数
Default:
http2_max_requests 1000;
Context: httpserver

Syntax:http2_chunk_size size; 用于chunk分离的时候每个chunk的大小
Default:

http2_chunk_size 8k;

Context:httpserverlocation

Syntax: http2_recv_buffer_size size; 每个缓冲区大小,只应用于每个worker进程里因此一般够用
Default:
http2_recv_buffer_size 256k;
Context: http
Syntax: http2_max_header_size size; 每个请求头部解压后大小
Default:
http2_max_header_size 16k;
Context: httpserver
Syntax: http2_body_preread_size size;设置每个请求的缓冲区大小,在开始处理请求之前,可以在其中保存请求正文。
Default:
http2_body_preread_size 64k;
Context: httpserver

Nginx http2.0的更多相关文章

  1. nginx编译支持HTTP2.0

    nginx编译支持HTTP2.0 nginx编译支持HTTP2.0 wget https://www.openssl.org/source/openssl-1.1.0i.tar.gz #openssl ...

  2. HTTP2.0学习 与 Nginx和Tomcat配置HTTP2.0

    目录 一.HTTP2.0 1.1 简介 1.2 新的特性 1.3 h2c 的支持度 二.Nginx 对 http2.0 的支持 2.1 Nginx 作为服务端使用http2.0 2.2 Nginx 作 ...

  3. 既有Nginx重新动态编译增加http2.0模块

    1.HTTP2.0 HTTP2.0相较于http1.x,大幅度的提升了web性能,在与http1.1完全语义兼容的基础上,进一步减少了网络延时.我们现在很多对外的网站都采用https,但是F12一下看 ...

  4. HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事

    作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处 ...

  5. HTTP2.0那些事

    1. HTTP2.0的前世 http2.0的前世是http1.0和http1.1这两兄弟.虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼.http1 ...

  6. HTTP2.0和QUIC

    最近看到腾讯云支持QUIC的文章,突然意识到还没有好好认识HTTP2.QUIC,而要认识HTTP2,就需要从HTTP1.0开始讲起,才能清楚HTTP的发展历程. HTTP1.x HTTP(HyperT ...

  7. HTTP1.0、HTTP1.1 和 HTTP2.0 的区别

    一.HTTP的历史 早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上 ...

  8. 杂谈:HTTP1.1 与 HTTP2.0 知多少?

    HTTP是应用层协议,是基于TCP底层协议而来. TCP的机制限定,每建立一个连接需要3次握手,断开连接则需要4次挥手. HTTP协议采用"请求-应答"模式,HTTP1.0下,HT ...

  9. HTTP2.0探究

    http1.1和http2.0在请求379张图片的对比演示(HTTP2.0性能惊人). HTTP2.0是HTTP协议自1999年HTTP1.1发布后的首个更新,主要基于SPDY(读speedy).  ...

随机推荐

  1. docker容器中安装vi命令

    在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时 ...

  2. Codeforces Round #545 (Div. 1) Solution

    人生第一场Div. 1 结果因为想D想太久不晓得Floyd判环法.C不会拆点.E想了个奇奇怪怪的set+堆+一堆乱七八糟的标记的贼难写的做法滚粗了qwq靠手速上分qwqqq A. Skyscraper ...

  3. 有关Web常用字体的研究?

    Windows自带字体: 黑体:SimHei 宋体:SimSun 新宋体:NSimSun 仿宋:FangSong 楷体:KaiTi 仿宋GB2312:FangSongGB2312 楷体GB2312:K ...

  4. 反射那些基础-Class

    目录 1 Class 类是什么? 2 如何获取 Class 对象 2.1 Object.getClass() 2.2 .class 语法 2.3 Class.forName() 2.4 通过包装类的 ...

  5. 面试 15:顺时针从外往里打印数字(剑指 Offer 第 20 题)

    面试 15:顺时针从外往里打印数字 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印每一个数字.例如输入: {{1,2,3}, {4,5,6}, {7,8,9}} 则依次打印数字为 1.2.3. ...

  6. 朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC

    阅读PDF版本 本文会以一些例子来展现Spring MVC的常见功能和一些扩展点,然后我们来讨论一下Spring MVC好用不好用. 使用SpringBoot快速开始 基于之前的parent模块,我们 ...

  7. Faster R-CNN:详解目标检测的实现过程

    本文详细解释了 Faster R-CNN 的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了 Luminoth 实现,供大家参考.   Luminoth 实现:https:// ...

  8. eclipse maven 常见问题解决方案

    一.eclipse集成与设置 传送门:http://www.cnblogs.com/tweet/p/7602044.html 二.创建maven webapp工程,报错 报错信息:Could not ...

  9. Mysql MyISAM与InnoDB 表锁行锁以及分库分表优化

    一. 两种存储引擎:MyISAM与InnoDB 区别与作用 1. count运算上的区别: 因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需 ...

  10. 快速为git添加一个用户

    环境:用gitosis-admin管理git的权限. 前期git环境的搭建略去,主要给出快速添加一个用户的步骤: 在git bash中用“ssh-keygen -t rsa”生成公钥私钥,默认放到 “ ...