Hello,
I've been struggling to resolve this particular issue. I have a Golang gRPC server which streams data to a Flask/Gunicorn webserver and then passes it on to the client. I have Nginx running as a reverse proxy in front of my webserver
Client(Browser) <-> Nginx Reverse Proxy <-> Webserver(Flask/Gunicorn) <-> go-grpc server
Essentially, the user on their browser will click a button which is just an AJAX call (/stream) to the backend webserver. Then the webserver, which is the gRPC client, will make the actual gRPC call and yield all responses back to the client. Some of them get truncated. For example if we expect:
{
"source": "serviceA",
"timestamp": 123490435,
"data": {
"1": 3446.706,
"2": -45.343464,
...
"200": 5.3545
}
}
We may only get:
{
"source": "serviceA",
"ti
And then:
mestamp": 123490435,
"data": {
"1": 3446.706,
"2": -45.343464,
...
"200": 5.3545
}
}
In the next frame. Where the truncation happens is random and when it happens is also random. If my setup doesn't make any sense, please let me know on better ways to integrate a gRPC client.
I've isolated the problem to nginx. If I run this without nginx, I get no truncations. I've tried `proxy_buffering off;` and a myriad other nginx paramters but nothing seems to work.
Thank you,
Paul C.