【十万火急】用的nodejs 的web socket IO 挂在外网的时候出问题了。
发布于 9 年前 作者 heixiaoshan 5969 次浏览 最后一次编辑是 8 年前 来自 问答

untitled1.png 前端后端都是socket.io的库 nginx代理映射 看到@alsotang 的回复闪出了灵光。 最终发现的问题居然不是socket的问题,而是pm2 应用进程数的问题, 原因是我本地测试只用了一个进程,也就是 -i 1,挂在外网 -i 2 。这样问题就来了。 为什么多了一个进程就不行了。

11 回复

有用反向代理么

@RavenZZ 有用nginx代理

@heixiaoshan Nginx开启 支持websocket了么

@RavenZZ 怎么开?可是前后端用的都是socket.io。 下面这个吗? location …socket/io{ }

5楼正解,其实就是把 Upgrade 和 Connection 这两个 header 转发过去。

@RavenZZ 这个我配置过一个。不管用好像。

@klesh 代码不是我写的,我先排查一下问题,看看还可能存在的问题是什么

感觉 nginx 放在外围的话一般有两个问题 一是对于 websocket 协议的支持 二是需要把同一个用户定位到同一个进程上

@alsotang 找到问题所在了,看到你的第二句回复。哈哈

回到顶部