求助帖: PM2 + Nginx

2023-05-25 21:43:54 +08:00
 121819756

现在有个问题是,我用 PM2 启动我的 node web 项目,配合 nginx 进行访问

但是我每次 PM2 reload 的时候,会有部分用户出现 502 的情况

我个人觉得是 node 和 nginx 超时时间不一致,但是我设置成一样的也还是没用,后来又添加了多端口负载,依旧还是没用

我猜测是由用户访问服务,然后我同步更新了,导致了 502 把?求助各位大佬,有什么解决方案吗?

2246 次点击
所在节点    Node.js
10 条回复
ysc3839
2023-05-25 21:52:16 +08:00
是 Node.js 部分启动慢吧
121819756
2023-05-25 21:54:02 +08:00
@ysc3839 是的,有时候重启了一分钟,有时候很快,您知道为啥吗?如何解决
April5
2023-05-25 22:29:38 +08:00
我猜是 NGINX keep alive ,然后连接复用继续请求你的 node 服务,但发现上游服务停了。
NGINX 配置 proxy_next_upstream 试试将请求转发到其他节点。
isbase
2023-05-25 22:31:27 +08:00
Docker 也可以 zero downtime deployment
Masoud2023
2023-05-26 09:24:51 +08:00
启动多个 node 实例,nginx 负载均衡,不要同时启停所有 node 实例
121819756
2023-05-26 09:38:57 +08:00
@Masoud2023 这个法子我试过了。我起了 2 个端口做负载,但是实际有的用户已经在 1 上面了,会一直连接直到超时,然后就会 502
121819756
2023-05-26 09:39:21 +08:00
@isbase docker 确实解万愁
cccchg
2023-05-29 15:14:58 +08:00
什么业务 启动这么慢
121819756
2023-05-29 16:40:38 +08:00
@cccchg 就是类似于抽奖的活动页面,我在想是不是并发太高了,导致 reload 会慢。
Pythoner666666
2023-06-06 10:20:15 +08:00
cluster

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/943006

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX