我使用 node.js 编写了一个 Web 应用程序:
- 表示
- 套接字.io
- redis 用于会话存储和一些缓存的东西
- mysql用于持久数据
这在独立运行时效果很好,我现在想让它在“生产”模式下运行。实际上,我想让 nginx 在前面将请求重定向到正在运行的节点服务器。
现在,我对所有东西都使用一个物理服务器(i5 - 4 核),但这可能会在未来发生变化(所以也许另一个只用于 mysql 等)
在这种情况下:
- 我应该在上游之间使用 nginx 负载平衡吗?(即使用不同的端口运行我的应用程序)
nginx 配置将是这样的:
upstream my_app {
server 127.0.0.1:3000;
server 127.0.0.1:3001;
server 127.0.0.1:3002;
}
那么,将节点作为服务运行以便我可以轻松重新启动它的正确方法是什么?我可以自己创建一个简单的脚本(处理启动/停止/重启,...),但也许我可以使用已经可用的东西吗?
- 我应该使用节点集群吗?
我的应用程序目前在单线程中运行,但从我所读到的内容中,我知道我可以使用 pm2/nodemon/forever 等解决方案进行多线程或分叉我的进程,但不确定哪一个最适合。
我刚刚尝试过 pm2,它可以很好地集群或分叉节点进程,只是不确定这是使用 nginx 的方式。
谢谢,