今天工作中有同事需要使用gRPC来发起和外部站点的转发功能,特意记录下整个操作过程。
gRPC简介:
gRPC是一个高性能、开源和通用的RPC框架,面向移动和HTTP/2设计。
目前提供C、Java和Go语言版本,分别是grpc、grpc-java、grpc-go。
gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。
这些特性使得其在移动设备上表现更好,更省电和节省空间占用。
gRPC由google开发,是一款语言中立、平台中立、开源的远程过程调用系统。
在gRPC里客户端应用可以像调用本地对象一样直接调用另一台不同机器上服务端应用的方法,使得你能够更容易地创建分布式应用和服务。
nginx对gRPC的支持
按照nginx官网所述,nginx对gRPC在1.13.10版本上所支持,而且如果需要使用ngx_http_grpc_module还必须使用ngx_http_v2_module模块。而ngx_http_v2_module可不是默认进行编译的哦,所以需要提前对此模块进行编译。
The ngx_http_grpc_module module allows passing requests to a gRPC server (1.13.10). The module requires the ngx_http_v2_module module.
对nginx进行编译
因为我之前已对公司提供的nginx服务版本已升级到1.14,所以本次直接使用1.14进行编译,编译过程如下
./configure --prefix=/usr/local/nginx \
-