通过 pm2 部署 node.js 项目

pm2.png


文章目录


我们如何用 pm2 把 node.js项目 部署到服务器


安装 pm2

全局安装

➜  /Users/zhangzhi  >sudo npm install -g pm2


初始化 pm2 配置文件

➜  /Users/zhangzhi  >pm2 ecosystem

                       -------------


  Looking for a complete monitoring and management tool for PM2?
                         Check out:
   _                             _        _            _
  | | _____ _   _ _ __ ___   ___| |_ _ __(_) ___ ___  (_) ___
  | |/ / _ \ | | | '_ ` _ \ / _ \ __| '__| |/ __/ __| | |/ _ \
  |   <  __/ |_| | | | | | |  __/ |_| |  | | (__\__ \_| | (_) |
  |_|\_\___|\__, |_| |_| |_|\___|\__|_|  |_|\___|___(_)_|\___/
            |___/

                      Register here:

                 https://app.keymetrics.io/


                       -------------

[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
File /Users/zhangzhi/ecosystem.json generated

运行命令的当前目录下会生成一个ecosystem.json 文件
es.png


编辑ecosystem.json

{
  apps : [
    {
      name      : "API",
      script    : "app.js",
      env: {
        COMMON_VARIABLE: "true"
      },
      env_production : {
        NODE_ENV: "production"
      }
    },

    // Second application
    {
      name      : "WEB",
      script    : "web.js"
    }
  ],
  deploy : {
    production : {
      user : "node",
      host : "212.83.163.1",
      ref  : "origin/master",
      repo : "git@github.com:repo.git",
      path : "/var/www/production",
      "post-deploy" : "npm install ; pm2 startOrRestart ecosystem.json --env production"
    },
    dev : {
      user : "node",
      host : "212.83.163.1",
      ref  : "origin/master",
      repo : "git@github.com:repo.git",
      path : "/var/www/development",
      "post-deploy" : "npm install ; pm2 startOrRestart ecosystem.json --env dev",
      env  : {
        NODE_ENV: "dev"
      }
    }
  }
}

解析配置文件
user :登录用户名
host : 要部署的目标服务器或者域名
ref : 用于部署代码时的分支
repo : git 仓库地址
path : 在目标服务器上部署的文件目录地址
post-deploy : 部署后启动的脚本


执行部署

pm2 deploy ecosystem.json production

更新部署

pm2 deploy production update

出自:通过 pm2 部署 node.js 项目

回到顶部