กองของเราคือ Client(Browser) <-> Nginx Reverse Proxy <-> Webserver(Flask+Gunicorn) <-> Golang gRPC server

ปัญหาคือเมื่อไคลเอนต์ทำการเรียกไปยัง/realtimedataปลายทาง จากนั้น Flask จะเปิดการเชื่อมต่อ gRPC และเริ่มรับข้อมูลผ่านเซิร์ฟเวอร์ -> ไคลเอนต์สตรีมแบบทิศทางเดียว แล้วส่งต่อให้ลูกค้า เมื่อฉันเรียกใช้โดยไม่มี Nginx ฉันจะได้รับคำตอบทั้งหมด เมื่อทำงานกับ Nginx การตอบสนองบางอย่างจะถูกตัดทอน ตัวอย่างเช่น หากเราคาดหวัง:

{
    "source": "serviceA",
    "timestamp": 123456789,
    "data": {
        "1": 24.55667,
        "2": -456.5656,
        ...
        "200": 5.678
    }
}

เราได้รับ

{
    "source": "serviceA",
    "time

แล้ว

        stamp": 123456789,
    "data": {
        "1": 24.55667,
        "2": -456.5656,
        ...
        "200": 5.678
    }
}

สิ่งนี้จะพิมพ์ใน console.log ฉันมีproxy_buffering off;ในการกำหนดค่า nginx มิฉะนั้นจะไม่มีข้อมูลใดส่งไปยังเบราว์เซอร์ ไม่แน่ใจว่าจะแก้ไขปัญหานี้อย่างไร

นี่คือตัวอย่างขั้นต่ำที่สามารถทำซ้ำได้

อัปเดต: ฉันได้รันตัวอย่างขั้นต่ำที่ทำซ้ำได้กับ Apache2 แทนที่จะเป็น Nginx และประสบปัญหาการตัดทอนแบบสุ่มเหมือนกัน

no answer