登录
首页 >  Golang >  Go问答

GRPC 反向代理暗淡了 GRPC 和 GRPC-Web 的区别

来源:stackoverflow

时间:2024-02-06 13:36:17 480浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《GRPC 反向代理暗淡了 GRPC 和 GRPC-Web 的区别》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我有一个反向代理。这里我反向代理到 api.example.comgrpc.example.com:443 。我的 api 域正在工作,但是当我向 grpc.example.com:443 发出请求时,grpc 将其视为 grpc-web 并以 grpc.example.com:443/hello.helloservice/greeter 形式发送请求。

   creds := credentials.newtls(&tls.config{
        insecureskipverify: true,
    })

    opts := []grpc.dialoption{
        grpc.withtransportcredentials(creds),
        grpc.withblock(),
    }
    conn, err := grpc.dialcontext(context.background(), 
net.joinhostport("grpc.example.com", "443"), opts...)
    if err != nil {
        log.fatalf("could not connect to grpc: %v", err)
    }

grpc反向代理:

grpcHeader := c.Request.Header.Get("Content-Type")
    grpcserver := grpc.Server{}
    if grpcHeader == "application/grpc" || grpcHeader == "application/grpc+json" || grpcHeader == "application/grpc+proto" {
        grpcserver.ServeHTTP(c.Writer, c.Request)
    }

正确答案


根据评论,gRPC 通常运行 over HTTP/2(但也有 other options)。

format of the HTTP/2 request path"/" 服务名称 "/" {方法名称}。这意味着看到 grpc.example.com:443/Hello.HelloService/Greeter 的请求是正常的(并不表明 gRPC-Web 正在使用)。

终于介绍完啦!小伙伴们,这篇关于《GRPC 反向代理暗淡了 GRPC 和 GRPC-Web 的区别》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>