在CentOS 6.8 x86_64上安装nghttp2最新版及让curl具有http2特性

nghttp2是什么?
nghttp2是一个实现IETF官方HTTP/2和HPACK头压缩算法的C库,但不限如此,在C库基础上,还实现了http2的客户端,服务器,代理服务器,以及压测工具。参见官网链接
http://www.nghttp2.org/
目前最新版本是1.24.0
https://github.com/nghttp2/nghttp2/releases

网上基本上都是在Ubuntu平台上安装nghttp2,比如,我按照下面的链接在Ubuntu 16.04.1 LTS上顺利安装了nghttp2

http://www.linuxidc.com/Linux/2016-01/127588.htm


安装之前的准备
升级Autoconf 2.63到2.69
http://blog.csdn.net/tao_627/article/details/77259591
升级GCC 4.4.7到4.9.2(通过devtoolset)
http://blog.csdn.net/tao_627/article/details/77260963


安装相关依赖库
sudo yum -y groupinstall "Development Tools"
sudo yum -y install openssl-devel libxml2-devel libev-devel jemalloc-devel python-devel
wget https://c-ares.haxx.se/download/c-ares-1.12.0.tar.gz -O /tmp/c-ares.tar.gz
mkdir -p /tmp/c-ares
tar -zxvf /tmp/c-ares.tar.gz -C /tmp/c-ares --strip-components=1
cd /tmp/c-ares && ./configure --libdir=/usr/lib64
make
sudo make install
wget http://www.digip.org/jansson/releases/jansson-2.9.tar.gz -O /tmp/jansson.tar.gz
mkdir -p /tmp/jansson
tar -zxvf /tmp/jansson.tar.gz -C /tmp/jansson --strip-components=1
cd /tmp/jansson && ./configure --libdir=/usr/lib64
make
make check
sudo make install

下面编译nghttp2最新版
wget https://github.com/nghttp2/nghttp2/releases/download/v1.24.0/nghttp2-1.24.0.tar.bz2
tar jxvf nghttp2-1.24.0.tar.bz2
cd nghttp2-1.24.0
./configure
make
make install
这里只是安装的库,在/usr/local/lib/libnghttp2.so,头文件在/usr/local/include/nghttp2

更新动态库
vim /etc/ld.so.conf
添加‘/usr/local/lib’
更新配置文件,执行ldconfig

注意:nghttp2本身就是一个http2的巨大宝库,这里我们仅是简单用到它的动态库。有兴趣的可以继续研究它的其它应用。

下面将nghttp2添加进curl中,使curl带有HTTP2特性
从官网下载最新版curl源码
wget https://curl.haxx.se/download/curl-7.55.1.tar.bz2
tar jxvf curl-7.55.1.tar.bz2
cd curl-7.55.1
./configure --with-nghttp2=/usr/local --with-ssl
make
make install

必要时修改环境变量
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig
更新动态库

遇到的问题
在源码编译curl时,执行configure命令遇到
checking run-time libs availability... failed
configure: error: one or more libs available at link-time are not available run-time. Libs used at link-time: -lnghttp2   -lssl -lcrypto -lssl -lcrypto   -lz -lrt
解决方法
刚才安装的动态库没有刷新到系统中,导致编译curl时没有找到
vim /etc/ld.so.conf
添加‘/usr/local/lib’
更新配置文件,执行ldconfig
查找下面的库是否已经找到

ldconfig -p | grep --color libnghttp2



验证

查看 curl 版本时会发布特性中会增加 HTTP2 功能支持。此时 –http2 参数就可以正常使用了:


测试curl with http2
我们再使用如下命令测试

curl --http2 -I https://nghttp2.org/



curl --http2 -vo test.out https://nghttp2.org/

我们可以看到详细的交互信息




参考文献

http://blog.csdn.net/freewebsys/article/details/59112145

https://wzyboy.im/post/1052.html


官网RFC
https://tools.ietf.org/html/rfc7540    HTTP/2
https://tools.ietf.org/html/rfc7541    HPACK
https://tools.ietf.org/html/rfc7838    HTTP Alternative Services

其它参考资料(由浅入深)
http://www.cnblogs.com/zlingh/p/5887143.html                    HTTP 2.0的那些事
https://bagder.gitbooks.io/http2-explained/zh/                       http2讲解
High Performanc Browser Networking(Web性能权威指南)   第12章
https://hpbn.co/http2/                                                             电子书最新版本

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: centos-6.8-x86_64-bin-dvd1是CentOS操作系统的一个版本,并且适用于64位的x86架构。这个版本是以DVD的形式提供的,可以通过下载的方式获得。 CentOS是一种开源的操作系统,是基于Red Hat Enterprise Linux(RHEL)的一个免费替代品。它提供了一个稳定、安全和可靠的操作环境,广泛应用于服务器和企业级环境中。 为了下载centos-6.8-x86_64-bin-dvd1,可以参考以下步骤: 1. 打开CentOS官方网站(http://www.centos.org)。 2. 导航到“Downloads”(下载)页面。 3. 在页面上找到centos-6.8-x86_64-bin-dvd1下载选项。 4. 点击下载链接以开始下载。 5. 下载完成后,您可以使用适当的软件或工具将下载的ISO文件刻录到DVD上,以创建可启动的安装介质。 6. 现在,您就可以使用该DVD来安装CentOS 6.8版本,并体验它所提供的功能和特性。 需要注意的是,CentOS 6在2020年11月30日之后不再受到官方支持。因此,如果您对操作系统的安全性和稳定性有更高的要求,建议考虑使用最新版本的CentOS或者其他类似的操作系统。 总结起来,centos-6.8-x86_64-bin-dvd1是一个CentOS 6.8版本的下载文件。通过将该ISO文件刻录到DVD上,您可以安装这个操作系统并使用其提供的功能和特性。 ### 回答2: CentOS-6.8-x86_64-bin-dvd1是CentOS Linux操作系统的一个版本,这个版本适用于64位的x86架构。下载这个版本的镜像文件,可以通过官方网站或者镜像站点进行。 CentOS是一个开源的Linux操作系统,具有稳定性和安全性的特点,因此被广泛用于服务器环境和企业级应用。CentOS-6.8-x86_64-bin-dvd1是CentOS 6.8版本的其中一个发布版本,适用于使用64位x86架构的计算机。 下载这个版本的镜像文件可以完成以下步骤: 1. 打开CentOS官方网站或镜像站点,在下载页面找到CentOS-6.8-x86_64-bin-dvd1版本的下载链接。 2. 点击下载链接,选择一个合适的镜像站点进行下载。通常会提供多个镜像站点,选择离自己所在地区近且速度较快的镜像站点。 3. 等待下载完成。镜像文件的大小较大,下载时间可能会比较长,具体时间取决于网速和镜像站点的负载情况。 4. 下载完成后,可以使用光盘刻录软件将镜像文件刻录到DVD光盘上,或者使用虚拟光驱软件挂载镜像文件。 5. 刻录或挂载完成后,便可以将DVD光盘插入计算机,或者在虚拟光驱软件中打开文件。通过启动计算机时选择光驱启动,或者在虚拟机软件中设置虚拟光驱启动,即可开始安装CentOS-6.8-x86_64-bin-dvd1版本。 下载CentOS-6.8-x86_64-bin-dvd1版本是获取CentOS Linux操作系统的一种方式,通过正确的下载和安装,便可以在计算机上使用这个稳定且强大的操作系统。 ### 回答3: CentOS-6.8-x86_64-bin-dvd1 是CentOS官方提供的一种操作系统安装镜像。在下载该镜像时,您可以按照以下步骤进行操作: 1. 打开您的网络浏览器,并访问CentOS官方网站(https://www.centos.org)。 2. 在网站的首页上找到"Downloads"或类似的选项,并点击进入下载页面。 3. 在下载页面中,找到"CentOS 6"的版本,然后找到"CentOS-6.8-x86_64-bin-DVD1.iso"安装镜像文件。 4. 单击该镜像文件的下载链接,将会弹出一个保存文件的对话框。 5. 浏览您希望保存该镜像文件的文件夹,然后点击"保存"按钮启动下载过程。 6. 等待下载完成。下载时间将取决于您的网络连接速度。 7. 下载完成后,在您选择的文件夹中会出现一个名为"CentOS-6.8-x86_64-bin-DVD1.iso"的文件,这就是您所下载的CentOS安装镜像。 下载完成后,您可以将该镜像刻录到DVD光盘上,或者使用虚拟机软件来安装CentOS系统。请注意,安装操作系统涉及到系统配置和分区等复杂操作,请确保您具备相关知识或者咨询专业人士的指导,以避免不可逆的损失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值