PM2 实用指南及容器 Docker 部署

Node.js 默认单进程运行,对于 32 位系统最高可以使用 512MB 内存,对于 64 位最高可以使用 1GB 内存。对于多核 CPU 的计算机来说,这样做效率很低,因为只有一个核在运行,其他核都在闲置,pm2 利用的 node 原生的 cluster 模块可以顺利解决该问题。
pm2 是一个带有负载均衡功能的应用进程管理器,可以使 node 服务在后台运行。
安装
PM2 常用命令
app.js为 api-service 服务的启动程序,在生产环境中使用 pm2 进行管理
启动
查看进程
监控
停止
重载
重启
删除 PM2 进程
自动启动文件
生成脚本
创建文件:/api-service/ecosystem.config.js
说明:
apps:json结构,apps是一个数组,每一个数组成员就是对应一个pm2中运行的应用name:应用程序的名称cwd:应用程序所在的目录script:应用程序的脚本路径exec_interpreter:应用程序的脚本类型,这里使用的shell,默认是nodejs。min_uptime:最小运行时间,这里设置的是60s即如果应用程序在60s内退出,pm2会认为程序异常退出,此时触发重启max_restarts设置数量max_restarts:设置应用程序异常退出重启的次数,默认 15 次(从 0 开始计数)exec_mode:应用程序启动模式,这里设置的是cluster_mode(集群),默认是forkerror_file:自定义应用程序的错误日志文件out_file:自定义应用程序日志文件pid_file:自定义应用程序的 pid 文件watch:是否启用监控模式,默认是false,如果设置成true,当应用程序变动时,pm2会自动重载,这里也可以设置你要监控的文件。
执行脚本
重启
查看进程
Dockerfile
上面介绍的安装、部署、启动等操作都可以使用 Docker 简单的完成部署。一般项目完整的环境包括 Node 作为后台服务,Vue 或者 Angular 作为前端,那么生产环境可以选择 Nginx + Node + pm2 ,Nginx 作为 Web 项目的入口。这里在创建 Dockerfile 是以 nginx:1.21.1-alpine 作为基础,完整代码如下:
./start.sh 的脚本如下:
nginx 配置文件 ./etc/nginx/default.conf 的代码如下:
版权声明: 本文为 InfoQ 作者【devpoint】的原创文章。
原文链接:【http://xie.infoq.cn/article/3c3015ef376a0b67374d85343】。文章转载请联系作者。











评论