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
(集群),默认是fork
error_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】。文章转载请联系作者。
评论