pm2、node、实例和端口

9
很抱歉,如果这个问题对于新手来说有些简单,但我不知道如何做/它是如何工作的。
1/ 我正在使用node.js创建API,API服务一些前端应用程序
2/ 为了使其更加稳定,我使用pm2(非常好的产品),使用nginx作为代理,很好
3/ 但是,我该如何处理多个实例的node.js api?我看到了'cluster mode',很好,但是当我的node.js侦听单个端口(例如8080)时会发生什么情况?如果我配置了4个进程/实例,它们只能同时监听同一个端口吗?...那么:pm2是否在实例之间分派调用(因此确实充当代理)。
任何线索都将不胜感激,它是如何工作的?
格雷格
3个回答

9

1
但是我该如何在线程之间处理会话变量呢?这是否会自动处理,还是我需要使用某些工具来处理它(例如memcache)? - Gregoire Mulliez
1
嗨,我回答我的问题:我必须自己处理会话,模式不处理会话共享,因此标识、页面之间的信息...必须在调用之间手动处理。 - Gregoire Mulliez
1
是的,一个人必须从自己的实现中处理共享变量。我通常喜欢使用Redis和Mongo的组合。这取决于具体情况。 - Amit Yadav

0

你也可以使用nginx来管理负载。这是nginx的文档负载均衡

之后,您可以使用.env文件中的环境变量以特定端口运行应用程序,并像这样访问它。例如:process.env.PORT

之后,可以使用pm2这种方式运行应用程序。

PORT=5003 pm2 start routes.js --name app5003
PORT=5002 pm2 start routes.js --name app5002
PORT=5004 pm2 start routes.js --name app5004

0

感谢大家的回答,

  • 我必须自己处理线程之间的会话和变量,
  • pm2集群模式是正确的方式
  • pm2将以轮询的方式在实例之间分派调用

案件已结,再次感谢您提供的所有提示和答案,您为我节省了大量时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接