在CentOS系统下配置Node.js的集群,可以使用Node.js内置的cluster
模块。这个模块允许你创建多个工作进程,这些进程共享同一个服务器端口,从而实现负载均衡和高可用性。
以下是一个简单的示例,展示如何在CentOS上使用cluster
模块配置Node.js应用程序:
-
安装Node.js: 如果你还没有安装Node.js,可以使用以下命令安装:
sudo yum install -y nodejs npm
-
创建Node.js应用程序: 创建一个简单的Node.js应用程序文件,例如
app.js
:const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); // Fork workers. for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`worker ${worker.process.pid} died`); }); } else { // Workers can share any TCP connection // In this case it is an HTTP server http.createServer((req, res) => { res.writeHead(200); res.end('hello world\n'); }).listen(8000); console.log(`Worker ${process.pid} started`); }
-
运行应用程序: 使用以下命令运行你的Node.js应用程序:
node app.js
这个应用程序会在所有可用的CPU核心上创建工作进程,并且每个工作进程都会监听同一个端口(8000)。
-
验证集群状态: 你可以使用以下命令查看当前运行的Node.js进程:
ps aux | grep node
你应该会看到一个主进程和多个工作进程。
-
负载均衡:
cluster
模块会自动处理负载均衡,将请求分发到不同的工作进程。你可以使用浏览器或工具(如curl
)访问你的应用程序,验证负载均衡是否正常工作。
通过这种方式,你可以在CentOS上配置Node.js的集群,实现高可用性和负载均衡。如果你需要更高级的功能,可以考虑使用像PM2这样的进程管理工具,它提供了更多的功能和更好的管理界面。