【PM2进阶使用】

1 篇文章 0 订阅

启用集群模式

只需要在启动应用时带上i参数

pm2 start app.js -i max

max:意味着PM2将自动检测可用的CPU数量和运行多个进程可以在负载均衡模式(但是不推荐使用)

或者使用json文件启动的

{
  "apps" : [{
    "script"    : "api.js",
    "instances" : "max",
    "exec_mode" : "cluster"
  }]
}

当然还支持js和ylm文件,js示例如下

https://pm2.keymetrics.io/docs/usage/application-declaration/

module.exports = {
  apps : [{
    name        : "worker",//应用名称
    script      : "./worker.js", //脚本路径相对于pm2开始
    watch       : true, //开启监察,文件改变自动重启
    env: {
      "PORT": 3000,
      "NODE_ENV": "development",
    },
    env_production : {
        "PORT": 80
       "NODE_ENV": "production"
    }
  },{
    name       : "api-app",
    script     : "./api.js",
    cwd         : "/home/www/project_root/current",// 
    "error_file": "./logs/app.err.log",
    "out_file": "./logs/app.out.log", 
    "log_date_format" : "YYYY-MM-DD HH:mm Z"
    instances  : 4, // 实例(多核)
    exec_mode  : "cluster" // 集群模式
  }]
}

然后再启动进程

pm2 start processes.json

重载应用

pm2 reload <app_name>

或者

pm2 reload process.json
pm2 reload process.json --only api

一键发布
yml的书写方式(process.yml)

 : true
    env    :
      NODE_ENV: development
    env_production:
      NODE_ENV: production
deploy :
  production :
    user : root
    key : C:/Windows/SSH-ubuntu.pem  #服务器sshkey(阿里云再服务器镜像创建的时候会生成 然后保存到本地)
    host : 
      - 120.78.174.212                #服务器ip
    port : 22
    ref : origin/master
    repo : git@gitee.com:artiely/pm2test.git  #仓库地址
    path : /www/pm2test/production               #发布地址
    ssh_options : StrictHostKeyChecking=no       #ssh权限
    pre-deploy : git fetch --all                 #发布前的操作
    post-deploy : 'npm install && npm run build && pm2 startOrRestart process.yml --env production'
    env : 
      NODE_ENV : production

第一次发布本地执行

pm2 deploy process.yml production setup

然后每次发布只需本地执行如下命令,服务器就会自动拉取创库代码并发布

pm2 deploy process.yml production

注意事项

github上必须有服务器的公钥和本地的公钥

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

这里有各个系统生成id_rsa的方法

在实际操作中可能由于操作系统不同和权限的原因会遇到一些坑,大家参考报错信息都可以寻得答案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zsxy2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值