pm2入门指南

pm2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控,自动重启,负载均衡等。

安装
    npm install -g pm2
常用命令
  • 启动
    • –watch:监听应用目录的变化,一旦发生变化,自动重启。如果要精确监听,不监听的目录。通过配置文件
    • -i --instance:启用多少个实例,可用于负载均衡。如果-i 0 或者 -i max,则根据当前机器核数确定实例数
    • –ignor-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则,–ignore-watch=“test node_modules ‘some scripts’”
    • -n --name:应用的名称,查看应用信息的时候可以用到。
    • -o --output :标准输出日志文件的路径
    • -e --error :错误输出日志文件的路径
    • –interpreter :
    pm2 start app.js --watch -i 2;
  • 查看进程状态
    pm list
  • 查看某个进程的状态
    pm2 describe id|name
  • 重启
    pm2 restart app.js
  • 停止
    停止单个需要通过指定进程的name或者id。所以先通过 pm2 list 获取进程数据。然后执行停止
    pm2 stop name|id // 停止单个
    pm2 stop all // 停止所有
  • 删除
    和停止一样,删除单个也需要获取进程name/id
    pm2 del name|id // 删除单个
    pm2 del all // 删除所有
配置文件
  • 配置文件的设置项和命令行的参数基本上是一样的。
  • 可以选择yaml|json文件
  • json格式的配置文件会被pm2当成普通的js文件来处理,所以可以在里面添加注释或者编写代码,这样有助于动态调整配置
  • 如果启动的时候制定了配置文件,那么部分命令行参数会被忽略
    {
      "name"        : "fis-receiver",  // 应用名称
      "script"      : "./bin/www",  // 实际启动脚本
      "cwd"         : "./",  // 当前工作路径
      "watch": [  // 监控变化的目录,一旦变化,自动重启
        "bin",
        "routers"
      ],
      "ignore_watch" : [  // 从监控目录中排除
        "node_modules", 
        "logs",
        "public"
      ],
      "watch_options": {
        "followSymlinks": false
      },
      "error_file" : "./logs/app-err.log",  // 错误日志路径
      "out_file"   : "./logs/app-out.log",  // 普通日志路径
      "env": {
          "NODE_ENV": "production"  // 环境参数,当前指定为生产环境
      }
    }
多环境切换

在配置文件中通过env_xx来声明不同环境的配置,然后在启动的时候通过–env参数指定运行的环境

  • env为默认的环境配置(生产环境),env_dev(开发环境),env_test(测试环境)
  • 不同环境下的NODE_ENV,REMOTE_ADDR字段的值是不同的。
  • 在应用中,可以通过process.env,REMOTE_ADDR等来读取配置中声明的变量。
  "env": {
    "NODE_ENV": "production",
    "REMOTE_ADDR": "http://www.example.com/"
  },
  "env_dev": {
    "NODE_ENV": "development",
    "REMOTE_ADDR": "http://www.example.dev.com/"
  },
  "env_test": {
    "NODE_ENV": "test",
    "REMOTE_ADDR": "http://www.example.test.com/"
  }
  
  // 启动的时候指定环境启动
  pm2 start app.js --env dev
负载均衡
    pm2 start app.js -i 0 // 根据机器当前的核数,自动开始尽可能多的进程
    pm2 start app.js -i 3 // 开启三个进程
    pm2 start app.js -i mmax // 根据机器的cpu核数,开启对应数目的进程
日志查看
    pm2 logs
监控

通过数据大盘查看pm2运行进程的状态

    pm2 monit
内存超过上限自动重启

设置内存上限,并且内存达到上限之后自动重启

    pm2 start big-array.js --max-memory-restart 20M;
pm2 --help功能
  • 指令自动补全
    pm2 completion install
    source ~/.bash_profile
  • 开机自动重启
    • 首先通过pm save保存当前的状态
    • 通过pm2 startup [platform]生成开机自启动的命令
    • 将步骤2生成的命令,粘贴到控制台运行
pm2 + nginx反向代理配置
    upstream test {
        server 127.0.0.1:3001;
    }

    server {
        listen 80;
        server_name my_nodejs_server;
        root /home/www/project_root;

        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_max_temp_file_size 0;
            proxy_pass http://test;
            proxy_redirect off;
            proxy_read_timeout 240s;
        }
    }
参考地址

pm2远程部署:https://pm2.keymetrics.io/docs/usage/deployment/#getting-started
pm2API:https://pm2.keymetrics.io/docs/usage/pm2-api/
pm2在线监控系统:https://id.keymetrics.io/api/oauth/login

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值