PM2模块

PM2 是一个流行的 Node.js 进程管理器,用于在生产环境中管理、监控和守护 Node.js 应用。它提供了进程守护、负载均衡、日志管理、性能监控等功能,极大简化了 Node.js 应用的部署和维护。


PM2 核心功能

1. 进程守护(Daemon)

  • 如果 Node.js 应用崩溃,PM2 会自动重启它,确保服务高可用。

  • 适合生产环境,避免手动重启服务。

2. 负载均衡(Cluster Mode)

  • 支持多进程模式(利用多核 CPU),提升应用性能。

  • 示例:

    pm2 start app.js -i 4  # 启动4个进程(根据CPU核心数自动优化)

3. 日志管理

  • 自动记录应用日志(stdout 和 stderr),支持日志分割和查看。

  • 示例:

    pm2 logs             # 查看实时日志
    pm2 logs --lines 100 # 查看最近100行日志

4. 监控(Monitoring)

  • 实时监控 CPU、内存占用等指标:

    pm2 monit
  • 生成性能报告:

    pm2 show <app_name>

5. 开机自启动

  • 让 PM2 管理的应用在服务器重启后自动运行:

    pm2 startup          # 生成启动脚本
    pm2 save             # 保存当前进程列表

6. 环境变量管理

  • 支持不同环境(如 development / production)配置:

    pm2 start app.js --env production

PM2 基本使用

安装

npm install pm2 -g  # 全局安装

常用命令

命令说明
pm2 start app.js启动应用
pm2 list查看运行中的进程
pm2 stop <app_name>停止应用
pm2 restart <app_name>重启应用
pm2 delete <app_name>删除应用
pm2 reload all零停机重启(适用于集群模式)
pm2 flush清空日志

PM2 高级用法

1. 配置文件(ecosystem.config.js

  • 适用于复杂部署(多应用、环境变量、集群模式等)。

  • 示例:

    module.exports = {
      apps: [{
        name: "my-app",
        script: "app.js",
        instances: "max",  // 使用所有CPU核心
        env: {
          NODE_ENV: "development",
        },
        env_production: {
          NODE_ENV: "production",
        }
      }]
    };
  • 启动方式:

    pm2 start ecosystem.config.js --env production

2. 远程部署(PM2 Deploy)

  • 支持通过 SSH 在多台服务器上部署应用(类似 CI/CD)。

  • 示例配置:

    module.exports = {
      deploy: {
        production: {
          user: "root",
          host: ["server1.com", "server2.com"],
          ref: "origin/main",
          repo: "git@github.com:user/repo.git",
          path: "/var/www/my-app",
          "post-deploy": "npm install && pm2 reload ecosystem.config.js"
        }
      }
    };
  • 执行部署:

    pm2 deploy production

PM2 vs 其他工具

工具适用场景特点
PM2Node.js 生产环境进程守护、集群模式、日志管理
nodemon开发环境文件变更自动重启,不适合生产
forever简单守护功能较少,不如 PM2 强大

总结

✅ PM2 是 Node.js 生产级进程管理工具,适用于:

  • 需要 高可用(自动重启崩溃的进程)

  • 需要 负载均衡(多核 CPU 优化)

  • 需要 日志管理 & 监控

  • 需要 开机自启动

🚀 推荐使用 ecosystem.config.js 管理复杂应用,结合 pm2 deploy 实现自动化部署。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值