PM2
# PM2
# PM2
# 简介
对于线上项目,如果直接通过 node app 来启动,如果报错了可能直接停止导致整个服务崩溃,一般监控 node 有几种方案。
- supervisor: 一般用作开发环境的使用。
- forever: 管理多个站点,一般每个站点的访问量不大的情况,不需要监控。
- PM2: 一个进程管理工具,维护一个进程列表,可以用它来管理你的 node 进程,负责所有正在运行的进程,并查看 node 进程的状态,也支持性能监控,负载均衡等功能。
# PM2 的主要特性
- 内建负载均衡(使用 Node cluster 集群模块)
- 后台运行
- 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
- 具有 Ubuntu 和 CentOS 的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )
# 安装
|
|
# 常用命令
# PM2 Start
# 启动一个 Node 程序
|
|
# 启动进程并指定应用的程序名
|
|
# 集群模式启动
|
|
# 添加程监视
|
|
# 其他 Options
|
|
# 列出所有进程
|
|
# 重启、删除、停止、重新加载进程
|
|
除了使用 app_name
,还可以:
all
to act on all processesid
to act on a specific process id
# 查看状态、日志、指标
# 日志
To display logs in realtime:
|
|
To dig in older logs:
|
|
# 自适应监控面板
|
|
还有个 Web 版
|
|
# 查看某个进程具体情况
|
|
# 设置 Pm2 开机自启
开启启动设置,此处是 CentOS 系统,其他系统替换最后一个选项(可选项:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)
|
|
然后按照提示需要输入的命令进行输入
最后保存设置
|
|
# 官方推荐命令
|
|
# 管理多个应用
您还可以创建一个名为生态系统文件的配置文件来管理多个应用程序。生成生态系统文件:
|
|
生成 ecosystem.config.js
文件:
|
|
And start it easily:
|
|
Read more about application declaration here.
# 通过 Pm2 配置文件来自动部署项目
# 首先是配置服务器与 Github 的 Ssh
在服务器中生成 rsa 公钥和私钥,当前是 centos7 下进行
前提服务器要安装 git,没有安装的先安装 git,已安装的跳过
1
yum –y install git
生成秘钥
1
ssh-keygen -t rsa -C "xxx@xxx.com"
在~/.ssh 目录下有 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa.pub 文件里存放的即是公钥 key。
登录到 GitHub,点击右上方的头像,选择 settings ,点击 Add SSH key,把 id_rsa.pub 的内容复制到里面即可。
# 本地项目 PM2 配置文件
|
|
在项目跟目录下运行,会自动生成模板文件:
|
|
关于
post-deploy
you may have noticed the command
pm2 startOrRestart ecosystem.json --env production
. The--env
allows to inject different sets of environment variables.Read more here.
按照自己要求修改好后,就可以部署啦:
|
|
如:(windows 记得使用 git bash 等 unix 命令行)
|
|
# Pm2 Deploy
pm2 deploy help
:
|
|