nginx http2协议:

http2协议仅在https监听上支持,不支持明文http2 http2 cleartext。

当前http2只启用在客户端到waf之间的链路,waf到后端服务器之间的连接依然是http1.x

http2的请求会统计到监听/实例的qps中,与http1.x的qps请求统一计数。

在http2链路中所有后端发给waf的回应,根据协议要求,会将head中所有字段的名称改为小写字母,如Content-Type会被改写为content-type。

 

单个连接支持的最大并发stream数为128   

            

http2的连接超时时间为180秒

 

启用http2协议:

客户端在建立tls连接的 Client Hello 握手,通过alpn扩展列出了自己支持的各种应用层协议,HTTP/2 协议名称是 h2。

负载均衡https监听会侦测客户端发起的握手报文ClientHello中的alpn字段,进行协议版本的协商。

若客户端ClientHello报文中没有携带alpn字段,则按照http1.x的请求逻辑来处理,反之按照http2的请求逻辑处理。

 

浏览器

服务器

协商结果

不支持http2

不支持http2

不协商使用http1.1

不支持http2

支持http2

不协商使用http1.1

支持http2

不支持http2

协商使用http1.1

支持http2

支持http2

协商使用http1.1

 

配置格式,在listen命令后加http2参数,如下所示:

server {
    listen 10.10.10.10:443 backlog=20480 http2 ssl;
	ssl_async on;
}

 

如定义idle timeout以及max streams不支持server级别定义,可将这两个参数放在http配置块内

http2_idle_timeout 3m;
http2_max_concurrent_streams 128;

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐