新手问题 是否可用openresty作为grpc的路由(更新:目前看我觉得不行)

SaltySailor · 2017年09月27日 · 最后由 kevin 回复于 2017年09月29日 · 530 次阅读

# 已知 grpc(https://grpc.io/) 本质上是通过 http2.0 来进行通讯,OpenResty(http://openresty.org/cn/) 核心其实也是 nginx,也是可以支持处理 http2.0 请求的,所以打算用它来搞一个中间件,相当于是 grpc 的路由。 但是目前仍在尝试中,并且发现 nginx 不能很好的处理 http2.0 的请求(当然很大概率是我 grpc 那边写的不对或者是 nginx 使用姿势不对)。 # 想了解的&讨论的 有人使用过类似的解决方案吗?或者使用 nginx 处理 http2.0 请求的方案,如果有可否讨论一下 nginx 配置的一些情况? # 目前的结论 查了一些资料了解了一下,发现 nginx 对 http2 的支持仅仅局限于 server 端,并且从官网看目前他们也对支持完整的 http2 服务不感兴趣(没有开发计划),也就是说只能作为请求的接受者(这一点我也在尝试时发现了,nginx 会把收到的 http2 请求转发出去的时候强行转成 http1.1 类型)。 https://github.com/http2/http2-spec/wiki/Implementations 这里有一个 http2 的支持列表,可以看到 nginx 的标注仅为 server。。。 # 后续计划 打算换用 nghttp2 来搞。。。这个库似乎有不少人已经踩过坑了

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio

应该可以。gRPC 当初选择 http/2 协议的一个原因就是可以复用现成的 http 设施。

Nginx 对 HTTP/2 反代支持有问题的,具体讨论参考 https://github.com/grpc/grpc.github.io/issues/230 目前除了自己打 Patch 以外,你可以试试换个比如 Caddy 这样的解决方案上去。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册