通過pm2一鍵部署,nginx反向代理

這里我不講如何安裝node、pm2的環(huán)境安裝,只講如何通過pm2一鍵部署,怎么通過nginx反向代理到pm2上。如果有需要可以看我的另一篇文章:http://m.itdecent.cn/p/9034dd3101f1

一、準(zhǔn)備工作

??注:項目根目錄上要創(chuàng)建app.js(express),監(jiān)控端口號: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`)
})

根目錄下創(chuàng)建ecosystem.json

{
  "apps": [
    {
      "name": "項目名稱",//pm2啟動項目名稱
      "script": "app.js",//node啟動程序
      "env": {
        "COMMON_VARIABLE": "true"
      },
      "env_production" : {
        "NODE_ENV": "production"
      }
    }
  ],
  "deploy": {
    "production": { //生產(chǎn)環(huán)境
      "user": "root",//ssh登錄名
      "host": ["10.15.?.???"],//ssh host
      "port":"22",//ssh 端口
      "ref": "origin/stg",//git 分支
      "repo": "",//git url地址
      "path": "/data/www/website",//服務(wù)器部署目錄
      "ssh_options": "StrictHostKeyChecking=no",//ssh緩存是否開啟
      "post-deploy" : "cnpm install && npm run build && pm2 startOrRestart ecosystem.json --env production",//git 部署完成后,啟動項目的命令集
      "env"  : {
        "NODE_ENV": "production"
      }
    },
    "dev":{//測試環(huán)境
      "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中==

二、服務(wù)器站點目錄加載git

1、進(jìn)入站點目錄/data/www/website,執(zhí)行一下命令,拉去stg分支到source/目錄下

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

2、在本地項目目錄下執(zhí)行一下命令,執(zhí)行命令前保證git全部提交完成,本地沒有更改、刪除、新增的文件

//發(fā)布到測試環(huán)境
pm2 deploy ecosystem.json dev steup
//上線到正式環(huán)境
pm2 deploy ecosystem.json production steup

等待執(zhí)行完成
3、查看pm2的服務(wù)列表

pm2 list

4、nginx反向代理

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

搞定,收工!就是這么簡單。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容