美文网首页
通过pm2一键部署,nginx反向代理

通过pm2一键部署,nginx反向代理

作者: GavinSir | 来源:发表于2018-06-13 14:26 被阅读0次

这里我不讲如何安装node、pm2的环境安装,只讲如何通过pm2一键部署,怎么通过nginx反向代理到pm2上。如果有需要可以看我的另一篇文章:https://www.jianshu.com/p/9034dd3101f1

一、准备工作

⚠️注:项目根目录上要创建app.js(express),监控端口号:9527

const express = require('express')
const history = require('connect-history-api-fallback')
const env = process.env.NODE_ENV || 'development'

const path = require('path')
const app = express()

app.use(history())

if (env !== 'development') {
  app.use(express.static(path.join(__dirname, 'dist')))
}

// 错误处理
app.use((err, req, res, next) => {
  res.status(442).send({ error: err.message })
})

const server = app.listen(8086, () => {
  console.log(`Express started in ${app.get('env')} mode on http://127.0.0.1:8086`)
})

根目录下创建ecosystem.json

{
  "apps": [
    {
      "name": "项目名称",//pm2启动项目名称
      "script": "app.js",//node启动程序
      "env": {
        "COMMON_VARIABLE": "true"
      },
      "env_production" : {
        "NODE_ENV": "production"
      }
    }
  ],
  "deploy": {
    "production": { //生产环境
      "user": "root",//ssh登录名
      "host": ["10.15.?.???"],//ssh host
      "port":"22",//ssh 端口
      "ref": "origin/stg",//git 分支
      "repo": "",//git url地址
      "path": "/data/www/website",//服务器部署目录
      "ssh_options": "StrictHostKeyChecking=no",//ssh缓存是否开启
      "post-deploy" : "cnpm install && npm run build && pm2 startOrRestart ecosystem.json --env production",//git 部署完成后,启动项目的命令集
      "env"  : {
        "NODE_ENV": "production"
      }
    },
    "dev":{//测试环境
      "user": "root",
      "host": ["10.15.?.???"],
      "ref": "origin/stg",
      "repo": "",
      "path": "/data/www/website—test",
      "ssh_options": "StrictHostKeyChecking=no",
      "post-deploy" : "cnpm install && npm run build && pm2 startOrRestart ecosystem.json --env production",
      "env"  : {
        "NODE_ENV": "production"
      }
    }
  }
}

==注意:package.json中的devDependencies中的依赖放到dependencies中==

二、服务器站点目录加载git

1、进入站点目录/data/www/website,执行一下命令,拉去stg分支到source/目录下

git clone -b stg git@********/***.git source/

2、在本地项目目录下执行一下命令,执行命令前保证git全部提交完成,本地没有更改、删除、新增的文件

//发布到测试环境
pm2 deploy ecosystem.json dev steup
//上线到正式环境
pm2 deploy ecosystem.json production steup

等待执行完成
3、查看pm2的服务列表

pm2 list

4、nginx反向代理

server {
        listen       80;
        server_name  Your Domain;
        location / {
            proxy_pass http://127.0.0.1:9527;
        }
}

搞定,收工!就是这么简单。

相关文章

网友评论

      本文标题:通过pm2一键部署,nginx反向代理

      本文链接:https://www.haomeiwen.com/subject/cuyjeftx.html