最近一介布衣出大招了 弄了一个pm2 线下配置的东东 认真学习后 我把文章转载过来了 版权还是归人家所有的
我们如何用 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 文件
编辑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

