推外网络专注营销型网站品牌策划与推广

FOCUS MARKETING WEBSITE BRAND PLANNING AND MARKETING PROMOTION

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

2019-09-28 14:01:50 100000+ 编辑:推外网络 来源:本站原创
这里我不讲如何安装node、pm2的环境安装,只讲如何通过pm2一键部署,怎么通过nginx反向代理到pm2上。如果有需要可以看我的另一篇文章:https://www.jianshu.com/p/9034dd3101f1

一、准备工作

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

constexpress=require('express')

consthistory=require('connect-history-api-fallback')

constenv=process.env.NODE_ENV||'development'

constpath=require('path')

constapp=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})

})

constserver=app.listen(8086,()=>{

console.log(`Expressstartedin${app.get('env')}modeonhttp://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.?.???"],//sshhost

"port":"22",//ssh端口

"ref":"origin/stg",//git分支

"repo":"",//giturl地址

"path":"/data/www/website",//服务器部署目录

"ssh_options":"StrictHostKeyChecking=no",//ssh缓存是否开启

"post-deploy":"cnpminstall&&npmrunbuild&&pm2startOrRestartecosystem.json--envproduction",//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":"cnpminstall&&npmrunbuild&&pm2startOrRestartecosystem.json--envproduction",

"env":{

"NODE_ENV":"production"

}

}

}

}

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

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

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

gitclone-bstggit@********/***.gitsource/

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

//发布到测试环境

pm2deployecosystem.jsondevsteup

//上线到正式环境

pm2deployecosystem.jsonproductionsteup

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

pm2list

4、nginx反向代理

server{

listen80;

server_nameYourDomain;

location/{

proxy_passhttp://127.0.0.1:9527;

}

}

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


本站文章均为推外网络摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!感谢...