Nodejs Goodbye node-forever, hello PM2
Nodejs Goodbye node-forever, hello PM2
原文地址:http://devo.ps/blog/2013/06/26/goodbye-node-forever-hello-pm2.html Hacker News评论:https://news.ycombinator.com/item?id=5945420 翻译地址http://se77en.cc/2013/06/27/goodbye-node-forever-hello-pm2-translation/
Node.js: Goodbye node-forever, hello PM2
在Node.js应用的开发和部署过程中,我们常常需要确保应用程序能够稳定运行,并且能够在意外退出时自动重启。在过去,node-forever
是一个非常流行的选择。然而,随着技术的发展,一个新的工具 PM2
樱花登场,成为了一个更加强大、功能更加丰富的替代品。
为什么选择 PM2?
PM2 提供了许多优于 node-forever
的特性:
- 自动重启:当应用程序崩溃或挂起时,PM2 可以自动重启。
- 负载均衡:PM2 支持多进程模式,可以实现负载均衡。
- 监控和日志管理:PM2 可以实时监控你的应用状态,并提供详细的日志记录功能。
- 零停机更新:PM2 允许你在不中断服务的情况下更新应用。
安装 PM2
安装 PM2 非常简单,只需通过 npm 安装即可:
npm install -g pm2
使用 PM2 运行应用
假设你有一个简单的 Node.js 应用,文件名为 app.js
。使用 PM2 运行它:
pm2 start app.js
这会启动你的应用并将其托管在一个进程中。如果你想启动多个实例来实现负载均衡,可以使用以下命令:
pm2 start app.js --instances 4
管理 PM2 应用
PM2 提供了丰富的命令来管理你的应用,例如停止、重启和查看应用的状态:
# 查看所有应用的状态
pm2 list
# 停止一个应用
pm2 stop app.js
# 重启一个应用
pm2 restart app.js
# 列出所有已保存的应用配置
pm2 monit
配置 PM2
你可以创建一个 ecosystem.config.js
文件来管理你的应用配置。这是一个例子:
module.exports = {
apps : [{
name: "my-app",
script: "./app.js",
instances: 4,
autorestart: true,
watch: true,
max_memory_restart: "1G",
env: {
NODE_ENV: "development"
},
env_production: {
NODE_ENV: "production"
}
}]
};
然后使用以下命令启动应用:
pm2 start ecosystem.config.js
通过这种方式,你可以轻松地管理和扩展你的 Node.js 应用。
总结
PM2 提供了一种更强大、更灵活的方式来管理你的 Node.js 应用。无论是从稳定性还是从功能角度来看,PM2 都是一个值得尝试的选择。希望这篇介绍能帮助你更好地理解和使用 PM2!
在等upstart功能~
昨天正好也看到這篇文章,而且支援Cluster,挺棒的。
PM2 是一个强大的 Node.js 应用程序进程管理器,可以帮助你更方便地部署、运行和管理你的应用。它提供了自动重启、负载均衡、日志管理和资源监控等功能。与 node-forever 相比,PM2 提供了更全面的功能和更好的性能。
安装 PM2
首先需要全局安装 PM2:
npm install -g pm2
启动应用
使用 PM2 启动一个简单的 Node.js 应用:
// app.js
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}).listen(3000);
console.log('Server running at http://localhost:3000/');
启动该应用:
pm2 start app.js
配置文件
为了更好地管理应用,可以使用 PM2 的配置文件 ecosystem.config.js
:
module.exports = {
apps: [{
name: 'MyApp',
script: './app.js',
instances: 2,
autorestart: true,
watch: true,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}]
};
启动应用:
pm2 start ecosystem.config.js --env production
查看状态
查看所有正在运行的应用:
pm2 list
查看特定应用的状态和信息:
pm2 show MyApp
日志管理
PM2 会自动管理日志文件,你也可以手动查看:
pm2 logs
通过这些基本操作,你可以开始使用 PM2 来管理你的 Node.js 应用,提高生产环境中的稳定性和可维护性。