Nginx开启http2

来自Linux78|wiki

HTTP/2的主要优势: 使用二进制数据(不像HTTP/1.1一样使用明文)而且它使用了header数据压缩。不用再为header和cookie的大小而担心了。

它是完全多元化的,为了提升并发性可以使用一个连接加载多种资源。你的网站性能在需要引入多种资源的时候会表现得更好,因为现在它们可以在一次TCP连接中全部加载,在非阻塞模式中。域名切分和资源级联变成了反面模式。简单来说:你的网站加载会更快。

它允许服务器提前推送请求到客户端的缓存(目前Ngnix不支持这个特性)

它使用新的ALPN扩展,那将允许更快地加密连接。这个加密协议在初始化连接的阶段是可用的。

条件 1、openssl的版本必须在1.0.2e及以上 2、nginx的版本必须在1.9.5以上

启用http2支持 修改编译选项 在configure的选项中加入--with-http_v2_module,由于HTTP2需要SSL的支持,因此如缺少--with-http_ssl_module选项,还需要加入--with-http_ssl_module。 如下:

./configure --prefix=/etc/nginx \

           --with-openssl=../openssl-1.0.2g \
           --with-pcre=../pcre-8.38 \
           --with-zlib=../zlib-1.2.8 \
           --with-http_ssl_module \
           --with-threads \
           --with-debug \
           --with-http_v2_module

修改配置文件,启用HTTP2,如下: server {

   listen       8443 ssl http2 default_server; # 增加 http2 default_server
   server_name  192.168.0.107;
   ...

} 验证HTTP2是否已启用 方法一 使用高版本如56.0.2924.87的Chrome,按照如下步骤操作

使用Chrome访问启用http2的站点,比如Jackie的环境为https://192.168.0.107:8443。 新开TAB页,在地址栏中输入chrome://net-internals/#http2,检查HTTP/2 sessions下的表格。 确认表格里是否出现了上一步访问的主机地址,比如192.168.0.107:8443。

方法二 安装Chrome插件HTTP/2 and SPDY indicator,安装完毕后访问启用HTTP2的站点,如果地址栏出现蓝色的闪电,说明站点已启用HTTP2。