CNode

【十万火急】用的nodejs 的web socket IO 挂在外网的时候出问题了。

问答
Hheixiaoshan发布于11 年前最后回复11 年前11 回复6867 浏览0 收藏

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

查看回复

回复 (11)

R
RavenZZ#1·11 年前

有用反向代理么

H
heixiaoshan#2·11 年前
引用 RavenZZ有用反向代理么

@RavenZZ 有用nginx代理

R
RavenZZ#3·11 年前
引用 heixiaoshan@RavenZZ 有用nginx代理

@heixiaoshan Nginx开启 支持websocket了么

H
heixiaoshan#4·11 年前
引用 RavenZZ@heixiaoshan Nginx开启 支持websocket了么

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

K
klesh#6·11 年前

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

H
heixiaoshan#8·11 年前
引用 klesh5楼正解,其实就是把 Upgrade 和 Connection 这两个 header 转发过去。

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

A
alsotang#10·11 年前

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

参与回复
登录后即可参与回复。登录