在centos7上编译安装nghttp2
2017-02-22
最近有一个项目使用grpc对外提供服务, 在上线部署过程中遇到些问题,主要是http2流量的负载均衡和加解密。 本想着借助nginx来解决反向代理和加解密的问题,但无奈nginx暂还不支持http2的反向代理而且在相当长的一段时间 内没有计划, 具体信息参见这里, 于是只能使用其他的解决方案如 nghttp2或envoy
nghttp2是一个由日本工程师开发的项目,提供C Library
和一些实用的tools
(nghttpd nghttp nghttpx等). 作者没有提供通用的发行包rpm或deb, 需要使用的话只能从源码开始编译;
文档上详细描述了在ubuntu
上的编译安装流程,
但却缺少其他常用发行版centos
的编译安装流程 (倒吸凉气一口, 公司生产服务器使用的是清一色的centos, 还是只能硬着头皮搞下去).
如果你使用的服务器发行版本是ubuntu
, 请移步这里;
下面将详细描述在centos
上编译nghttp2的流程:
安装依赖
$ sudo yum -y groupinstall "Development Tools" |
编译安装nghttp2
- 下载最新版本源码
$ wget https://github.com/nghttp2/nghttp2/releases/download/v1.19.0/nghttp2-1.19.0.tar.gz -O /tmp/nghttp2.tar.gz |
- 生成Makefile
$ cd /tmp/nghttp2 && ./configure --enable-app |
注: 如果输出中包含package xxx not found
, 请自行goolge安装相应的依赖或给我留言
- 编译
$ make |
- 安装
$ sudo make install |
关于nghttpx
的使用和参数配置可以参照官方文档