小编Max*_*mez的帖子

如何修复:使用 nginx 反向代理时收到 RST_STREAM,错误代码为 2

我目前正在树莓派上使用dialogflow api。使用 grpc 调用 StreamingDetectIntent 方法时一切正常。我必须在我的产品上使用多个 api,因此,我尝试在它们前面放置一个反向代理。这样,我只能调用一个地址,我正在使用 nginx 将我的 GRPC 请求反向代理到 google api。调用简单方法时没有问题,但是当调用像 StreamingDetectIntent 这样的流方法时,我在请求期间收到错误。

Dialogflow 获取来自客户端的音频流量没有问题,但获取请求的最后部分(下游流量)时遇到问题。

这是我的客户给我的错误:

grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with:
        status = StatusCode.INTERNAL
        details = "Received RST_STREAM with error code 2"
        debug_error_string = "{"created":"@1567173815.816362297","description":"Error received from peer ipv4:163.172.143.250:443","file":"src/core/lib/surface/call.cc","file_line":1041,"grpc_message":"Received RST_STREAM with error code 2","grpc_status":13}"
>
Run Code Online (Sandbox Code Playgroud)

我可以在 Nginx 日志中看到错误:

upstream sent frame for closed stream 1 while reading upstream, client: ..., server: exemple.com, request: "POST /google.cloud.dialogflow.v2beta1.Sessions/StreamingDetectIntent HTTP/2.0", upstream: "grpcs://...:443", host: "example.com:443"
Run Code Online (Sandbox Code Playgroud)

我尝试将 grpc_buffer_size 参数增加到大值,但没有成功。

这是我当前的 Nginx 配置: …

nginx grpc nginx-reverse-proxy

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

grpc ×1

nginx ×1

nginx-reverse-proxy ×1