Nginx Websocket代理丢弃帧

Nginx Websocket代理丢弃帧,nginx,proxy,websocket,Nginx,Proxy,Websocket,直接连接到我的websocket服务器可以正常工作(Chrome或Firefox)。通过Nginx websocket代理连接可以连接,但会丢弃帧。以下是JSON消息的示例: <-- {"login" : { "username": "user", "password" : "pass"}} --> {"loginReply" : { "state": "ok"}} <-- {"someSetting1" : { "something": "something"}} <-

直接连接到我的websocket服务器可以正常工作(Chrome或Firefox)。通过Nginx websocket代理连接可以连接,但会丢弃帧。以下是JSON消息的示例:

<-- {"login" : { "username": "user", "password" : "pass"}}
--> {"loginReply" : { "state": "ok"}}
<-- {"someSetting1" : { "something": "something"}}
<-- {"someSetting2" : { "something": "something"}}  **DROPPED**
<-- {"someSetting3" : { "something": "something"}}  **DROPPED**
我试过时断时续地缓冲


还有什么我应该尝试的吗?

在分析数据流之后,Nginx确实在流式传输数据。区别在于Nginx将其缓冲到一个连续的流中,因为来自浏览器的数据是碎片化的


我使用的websocket实现需要修复。

我注意到的几个websocket实现的另一个错误是,您需要使用“升级”而不是“升级”

试着改变 代理设置头连接“升级”

代理设置头连接“升级”

location /websocket {
            proxy_pass http://localhost:8001;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_read_timeout 86400;
}