「golang」nginx支持grpc

【需求】

内网部分服务采用golang写的独立的小RPC服务,可能以后业务大之后加机器并考虑负载均衡

【分析】

nginx从1.13.10版本开始支持grpc,所以直接配置nginx即可支持GRPC的负载均衡

 

1、nginx安装

网上一堆安装教程,注意:因gRPC基于http2,所以源代码编译安装时需要配置http2,否则识别不了grpc_pass, 参考:./configure --with-http_ssl_module --with-http_v2_module

2、修改nginx配置(conf/nginx.conf)

upstream grpcservers {
 server 127.0.0.1:5004 weight=2;  #权重越大,分配的概率越大
 server 127.0.0.1:5005 weight=1;
}
 
server {
 listen 8000 http2;

 location = / {
  default_type application/grpc;
    grpc_pass grpc://grpcservers;    #"grpc://" 可省略
 }
}
 
备注:timeout默认是60s
 

posted on 2018-11-22 17:15  trako  阅读(443)  评论(0编辑  收藏  举报

导航