Node.js 是基于 Chrome V8 引擎的开源 JavaScript 运行时,以速度和可扩展性著称,常用于实时和高性能应用。在生产环境中运行 Node 应用会面临一些挑战——需要处理意外崩溃、管理进程并确保持续可用性。PM2 是 Node.js 的生产进程管理器,可以简化这些工作,让你监控、重启和优化应用。本指南介绍安装 PM2、在其下运行示例 Node.js 应用,以及为生产环境配置 PM2。完成后,你将拥有一个由 PM2 管理的 Node.js 应用,并配置自动重启、集中式日志和开机自启。 **安装 PM2** 通过 npm 包管理器安装 PM2: sudo npm install pm2 -g **创建示例 Node.js 应用** 1. 进入主目录: cd ~ 2. 使用 vim 等文本编辑器创建名为 app.js 的文件: vim app.js 3. 将以下代码添加到文件中: const http = require('http');const hostname = '0.0.0.0';const port = 3000;const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello World');});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);}); 保存并退出文件。这个示例应用监听 3000 端口,收到 HTTP 请求时返回消息 "Hello World"。 **使用 PM2 启动应用** 使用 PM2 启动 Node.js 应用(如有需要,将 app.js 替换为你的入口文件): pm2 start app.js 输出应类似: [PM2] Starting /home/linuxuser/app.js in fork_mode (1 instance)[PM2] Done. 随后会显示一个进程表,包含 id、name、mode、重启次数、status、cpu、memory 等字段。示例中 id 为 0、name 为 app、mode 为 fork、重启次数 0、status 为 online、cpu 0%、内存 4.4mb。 启动应用时还有其他可用参数,可访问官方文档查看全部参数。 **管理应用** 1. 重启由 PM2 管理的应用: pm2 restart app 2. 重载由 PM2 管理的应用: pm2 reload app 3. 停止由 PM2 管理的应用: pm2 stop app 4. 删除由 PM2 管理的应用: pm2 delete app **列出所有应用** 列出所有由 PM2 管理的应用: pm2 list **显示日志** 1. 实时查看应用产生的日志: pm2 logs 2. 使用 --lines 参数指定行数查看更早的日志: pm2 logs --lines 200 **监控资源使用情况** 近实时监控应用消耗的资源: pm2 monit **设置基于 Web 的仪表盘** 1. 配置基于 Web 的 PM2 仪表盘: pm2 plus 按照提示创建或登录 PM2 账户。如果没有账户,请填写所需信息并接受许可协议。设置过程中会看到类似输出: [PM2 I/O] Do you have a pm2.io account? (y/n) n[PM2 I/O] No problem! We just need a few details to create your account.[PM2 I/O] Please choose a username: exampleuser[PM2 I/O] Please choose an email: admin@example.com[PM2 I/O] Please choose a password: ************...[PM2 I/O] Do you accept the terms and privacy policy (https://pm2.io/legals/terms_conditions.pdf)? (y/n) y[PM2 I/O] Successfully authenticated[PM2 I/O] Successfully validated[+] PM2+ activated![PM2 I/O] Successfully connected to bucket PM2 Plus Monitoring[PM2 I/O] You can use the web interface here: https://app.pm2.io/#/bucket/67cb27ccd623d57f6d4c63c0 将 exampleuser 替换为你偏好的用户名,将 admin@example.com 替换为你的登录邮箱地址,并提供强密码以保护你的 PM2 账户。然后打开提供的网址,使用 PM2 账户凭据登录,并通过 PM2 Plus 仪表盘开始监控应用。 PM2 Plus 是订阅制服务,会根据你想监控的进程数量产生费用。请在 PM2 Plus 页面查看定价详情。 **配置开机自启** 1. 生成启动脚本并配置 PM2 在服务器启动时运行: pm2 startup 输出应类似: [PM2] To setup the Startup Script, copy/paste the following command:sudo env PATH=$PATH:/home/linuxuser/.nvm/versions/node/v22.14.0/bin /home/linuxuser/.nvm/versions/node/v22.14.0/lib/node_modules/pm2/bin/pm2 startup systemd -u linuxuser --hp /home/linuxuser 2. 复制上一步输出中的命令并执行。
热门跟贴