首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GRPC反向代理混淆GRPC和GRPC-Web

GRPC反向代理混淆GRPC和GRPC-Web
EN

Stack Overflow用户
提问于 2022-06-28 20:24:54
回答 1查看 260关注 0票数 2

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

代码语言:javascript
运行
复制
   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反向代理:

代码语言:javascript
运行
复制
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)
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-29 19:19:48

根据注释,gRPC通常运行/2 (但有其他选择)。

HTTP/2请求路径的格式"/" Service-Name "/" {method name}。这意味着看到grpc.example.com:443/Hello.HelloService/Greeter的请求是正常的(而不是表示gRPC正在使用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72792750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档