GRPC+Nginx
Posted 小红富士
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GRPC+Nginx相关的知识,希望对你有一定的参考价值。
昨天教练让我针对服务器请求的处理从nginx和gRPC中选一个,后来我发现在nginx1.13.10版本及以上是原生支持gRPC的,但是如果需要使用ngx_http_grpc_module还必须使用ngx_http_v2_module模块,因为gRPC是面向移动和 HTTP/2 而设计的。而ngx_http_v2_module不是默认编译的,所以需要提前对此模块进行编译。
另外在nginx的笔记中记了这样一段话:
反向代理主要分为两类,一类是四层的反向代理,这是nginx后续的一些stream模块在支持的,它相对比较简单,进来的是udp流量,那么nginx转发到上游的还是udp流量,tcp流量也是一样的,因为tcp协议它们没有很多业务特性,所以nginx并不能做很多的工作,相对比较简单,然后到了我们的应用层,7层的时候就不太一样了,http协议中含有大量的业务相关的信息,当客户端发来http请求以后,那么我们就可以根据http header等等参数的信息,我可以把它转换为不同的协议,比如当http协议这种绿色的我们可以转换成memcached,根据参数中有一些设定为k,或者设定为value,还有cgi,还有面向python的uwsgi,谷歌的grpc服务器也可以通过http转换成,当然http转换成上游的http也是ok的,websocket也是支持的。
目前gRPC提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go。其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, php 和 C# 。
以上是关于GRPC+Nginx的主要内容,如果未能解决你的问题,请参考以下文章