Nginx/Openresty中启用http2支持的方法教程

 更新时间:2017年07月04日 14:36:43   作者:andy zhang  
Openresty/Nginx默认是不支持http2的,需要将http2模块编译进应用中。这篇文章主要给大家介绍了关于在Nginx/Openresty中启用http2支持的方法教程,文中介绍的非常详细,对大家具有一的参考学习价值,需要的朋友们下面来一起看看吧。

本文主要给大家介绍了关于Nginx/Openresty启用http2支持的相关内容,在开始介绍之前,我们先来看一看什么是http2。

以下摘自http2的介绍:

HTTP/2 源自 SPDY/2

SPDY 系列协议由谷歌开发,于 2009 年公开。它的设计目标是降低 50% 的页面加载时间。当下很多著名的互联网公司,例如百度、淘宝、UPYUN 都在自己的网站或 APP 中采用了 SPDY 系列协议(当前最新版本是 SPDY/3.1),因为它对性能的提升是显而易见的。主流的浏览器(谷歌、火狐、Opera)也都早已经支持 SPDY,它已经成为了工业标准,HTTP Working-Group 最终决定以 SPDY/2 为基础,开发 HTTP/2。 

但是,HTTP/2 跟 SPDY 仍有不同的地方,主要是以下两点:

  • HTTP/2 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS 
  • HTTP/2 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE 

HTTP/2 的优势

相比 HTTP/1.x,HTTP/2 在底层传输做了很大的改动和优化:

HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。 
HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量。而 HTTP/1.x 
每次请求,都会携带大量冗余头信息,浪费了很多带宽资源。头压缩能够很好的解决该问题。 多路复用,直白的说就是所有的请求都是通过一个 TCP 连接并发完成。HTTP/1.x 虽然通过 pipeline 也能并发请求,但是多个请求之间的响应会被阻塞的,所以 pipeline 至今也没有被普及应用,而 HTTP/2 做到了真正的并发请求。同时,流还支持优先级和流量控制。

Server Push:服务端能够更快的把资源推送给客户端。例如服务端可以主动把 JS 和 CSS 文件推送给客户端,而不需要客户端解析 HTML 再发送这些请求。当客户端需要的时候,它已经在客户端了。 HTTP/2 主要是 HTTP/1.x 在底层传输机制上的完全重构,HTTP/2 是基本兼容 HTTP/1.x 的语义的(详细兼容性说明请戳这里)。Content-Type 仍然是 Content-Type,只不过它不再是文本传输了。 

Openresty/Nginx默认是不支持http2的,需要将http2模块编译进应用中。

下面我们以Openresty为例,介绍编译步骤.

下载openssl-1.0.2l

wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz 
tar -zxvf openssl-1.0.2l.tar.gz 

生成编译信息

./configure --with-http_v2_module --with-openssl=/openssl-1.0.2l

执行编译

make 
make install 

如果不报错,则编译成功。

下面来修改nginx配置文件,重点就是在启用443 ssl的地方启用http2. 如下:

server { 
 listen 443 ssl http2;
 ..........
}

执行reload,打开网页验证是否成功。

如果感觉编译麻烦,可以使用我已经编译好的openresty:

vikings/openresty:http2 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 负载均衡的基本知识以及使用nginx进行负载均衡的简单例子

    负载均衡的基本知识以及使用nginx进行负载均衡的简单例子

    今天小编就为大家分享一篇关于负载均衡的基本知识以及使用nginx进行负载均衡的简单例子,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 从Nginx切换到Tengine的步骤分享

    从Nginx切换到Tengine的步骤分享

    由淘宝网发起的Web服务器 Tengine 可以被看作一个更好的Nginx,或者是Nginx的超集。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性
    2012-11-11
  • 在阿里云Centos下如何安装Nginx

    在阿里云Centos下如何安装Nginx

    这篇文章主要介绍了阿里云Centos下如何安装Nginx,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • CentOS 7下安装Nginx服务器

    CentOS 7下安装Nginx服务器

    这篇文章主要为大家详细介绍了CentOS 7下安装Nginx服务器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Nginx+Tomcat搭建高性能负载均衡集群的实现方法

    Nginx+Tomcat搭建高性能负载均衡集群的实现方法

    这篇文章主要介绍了Nginx+Tomcat搭建高性能负载均衡集群的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Linux中安装Nginx的正确步骤

    Linux中安装Nginx的正确步骤

    这篇文章主要给大家介绍了关于在Linux中安装Nginx的正确步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 安装配置php-fpm来搭建Nginx+PHP的生产环境

    安装配置php-fpm来搭建Nginx+PHP的生产环境

    这篇文章主要介绍了安装配置php-fpm来搭建Nginx+PHP的生产环境的方法,php-fpm的作用是将FastCGI进程管理整合进PHP包,需要的朋友可以参考下
    2016-01-01
  • 在Nginx上配置多个站点的方法

    在Nginx上配置多个站点的方法

    这篇文章主要介绍了在Nginx上配置多个站点的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • nginx+rsync+inotify实现负载均衡配置方法

    nginx+rsync+inotify实现负载均衡配置方法

    这篇文章主要介绍了nginx+rsync+inotify实现负载均衡配置方法,需要的朋友可以参考下
    2014-11-11
  • nginx日志导入elasticsearch的方法示例

    nginx日志导入elasticsearch的方法示例

    这篇文章主要介绍了nginx日志导入elasticsearch的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论