使用pm2管理后台node服务
# 概要
- 公司项目的部署工程使用docker技术
- 爬虫项目使用到puppeteer,需下载chrome浏览器
# 问题
docker是一个完整的运行环境, 期初是按老思路,把代码进行docker部署构建,发现没有启动起来
打开日志查看,发现提示缺失很多依赖,包括puppeteer和chrome,
在经过尝试把相关依赖放到docker中后,发现一环套一环,很难解决
# 解决
冷静思考一下, docker的目的是什么, 是方便快速部署,对外使用,而爬虫这个项目并不需要对外使用,
另外爬虫项目也略微占内存和cpu,所以经过权衡之后, 决定不使用docker, 改成pm2进行管理
# pm2
使用pm2 start index.js 时候发现一点,也是起不来,老套路,看日志
pm2 start index.js 启动失败 ,降级 node index.js ,确保index.js没问题
使用pm2带端口执行,需弄一个配置文件, 按普通的示例发现启动不起来,摸索很久后, 用docker里的配置进行配置,发现启动起来了, 简直巨坑()
nginx配置, 服务启动之后, 需设置Nginx方便通过域名访问及代理设置
# 总结
主要的难点在于配置造成了启动失败, 需要找出相应的位置
ecosystem.config.js配置
module.exports = {
apps: [
{
name: 'reptile-admin',
script: 'server/dist/index.js',
exec_mode: 'cluster',
instances: 1,
error: 'logs/pm2-error.log',
output: 'logs/pm2-out.log',
merge_logs: true,
watch: true,
env: {
PORT: 7300,
NODE_ENV: 'production',
},
},
],
};
上次更新: 2021/12/19, 18:05:42