如何使用nginx 1.9.5作为gRPC的反向代理?

时间:2017-02-15 10:18:47

标签: nginx proxy grpc grpc-java

我想

  • 用Java编写我的后端代码,
  • 使用HTTP / 2(NGINX 1.9.5已支持HTTP / 2),
  • 编写双向流,随时在客户端和服务器之间发送数据。

gRPC 似乎是最好的选择,我想使用 NGINX 作为我的反向代理和加载平衡,我找不到任何文档来弄清楚如何使用NGINX使用gRPC Java,有谁知道?

我看到gRPC PHP已经支持NGINX:https://github.com/grpc/grpc/tree/master/src/php#use-the-grpc-php-extension-with-nginxphp-fpm

但我也看到有an issue表示它正在NGINX中提交第三方模块以获得gRPC支持,NGINX上有a ticket意味着我们无法写用于gRPC的HTTP / 2 NGINX代理模块,我也看到了nginx does not support the full HTTP/2 specs, gRPC does not work through it

我对此感到困惑,为什么有些帖子说gRPC PHP有效,但在其他帖子中它说它不能。

2 个答案:

答案 0 :(得分:4)

不是在nginx上,但我刚刚发布了一个用Go编写的grpc-proxy。它重量轻,可配置,并且有docker image可用。

答案 1 :(得分:0)

是的,现在,NGINX 确实完全支持带或不带 TLS 的 gRPC/HTTP2,只要您拥有 1.13.9 版本(如果您只是安装带有 alpine 或 latest 标签的 docker 镜像,那么它将是正确的版本)。

(至少)到 2020 年末,它得到了全面支持。这是他们官方文档的链接:

https://www.nginx.com/blog/nginx-1-13-10-grpc/