grpc(2):Centos 安装 nghttp2 做 grpc 的http2 代理
1,nghttp2和Nginx 名字比较像,但是是一个c的llib库。本身也可做http服务。 2,下载安装官方网站: 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.19.0/nghttp2-1.19.0.tar.gz -O /tmp/nghttp2.tar.gz
mkdir -p /tmp/nghttp2
tar -zxvf /tmp/nghttp2.tar.gz -C /tmp/nghttp2 --strip-components=1
cd /tmp/nghttp2 && ./configure --enable-app
make
sudo make install
没有错误就是编译成功了。 3,启动服务网上的文档比较少 frontend=0.0.0.0,5000;no-tls
backend=127.0.0.1,50051;/;proto=h2
backend=127.0.0.1,50051;/helloworld.Greeter/;proto=h2
backend=127.0.0.1,50052;/aaa/;proto=h2
#http2-proxy=no
workers=10
accesslog-file=/data/nghttp/log/access.log
errorlog-file=/data/nghttp/log/errorlog.log
首先是frontend 配置,不使用tls进行访问的话一定要加上。 4,启动服务nghttpx --conf nghttpx.conf
从访问日志里面看: 10.0.2.2 - - [01/Mar/2017:04:29:18 -0500] "POST /helloworld.Greeter/SayHello HTTP/2" 200 32 "-" "token=xxxxx grpc-java-netty/1.1.2"
10.0.2.2 - - [01/Mar/2017:04:29:18 -0500] "POST /helloworld.Greeter/SayHello HTTP/2" 200 32 "-" "token=xxxxx grpc-java-netty/1.1.2"
10.0.2.2 - - [01/Mar/2017:04:29:18 -0500] "POST /helloworld.Greeter/SayHello HTTP/2" 200 32 "-" "token=xxxxx grpc-java-netty/1.1.2"
10.0.2.2 - - [01/Mar/2017:04:29:18 -0500] "POST /helloworld.Greeter/SayHello HTTP/2" 200 32 "-" "token=xxxxx grpc-java-netty/1.1.2"
10.0.2.2 - - [01/Mar/2017:04:29:18 -0500] "POST /helloworld.Greeter/SayHello HTTP/2" 200 32 "-" "token=xxxxx grpc-java-netty/1.1.2"
10.0.2.2 - - [01/Mar/2017:04:29:18 -0500] "POST /helloworld.Greeter/SayHello HTTP/2" 200 32 "-" "token=xxxxx grpc-java-netty/1.1.2"
可以看到请求。 5,总结本文的原文连接是: http://www.jb51.cc/article/p-czjrvete-bew.html 未经博主允许不得转载。 nghttp2 是不错的grpc代理服务器,可以做简单的负载均衡。 同时保持http2的链接。 是一个不错的grpc gateway 解决方案。唯一不足的地方是用 c++ 编写的。 要是再修改成一个可以做权限,数据统计的gateway 修改起来还是有点难度的。本人不是搞c++ 开发的。 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |