pm2安装与使用(生产环境部署)
PM2是什么
PM2(Process Manager 2 )是具有内置负载均衡器的Node.js应用程序的生产运行时和进程管理器。 它允许您永久保持应用程序活跃,无需停机即可重新加载它们,并促进常见的Devops任务。
PM2特性
日志管理:应用程序日志保存在服务器的硬盘中~/.pm2/logs/
负载均衡:PM2可以通过创建共享同一服务器端口的多个子进程来扩展您的应用程序。这样做还允许您以零秒停机时间重新启动应用程序。
终端监控:可以在终端中监控您的应用程序并检查应用程序运行状况(CPU使用率,使用的内存,请求/分钟等)。
SSH部署:自动部署,避免逐个在所有服务器中进行ssh。
静态服务:支持静态服务器功能
多平台支持:适用于Linux(稳定)和macOS(稳定)和Windows(稳定)
PM2安装
npm install pm2 -gyarn global add pm2apt update && apt install sudo curl && curl -sL https://raw.githubusercontent.com/Unitech/pm2/master/packager/setup.deb.sh | sudo -E bash -
使用
启动服务
pm2 start app.js //启动app.js应用
pm2 start app.js --name demo //启动应用并设置name
pm2 start app.sh //脚本启动
停止服务
pm2 stop all //停止所有应用
pm2 stop [AppName] //根据应用名停止指定应用
pm2 stop [ID] //根据应用id停止指定应用
删除应用
pm2 delete all //关闭并删除应用
pm2 delete [AppName] //根据应用名关闭并删除应用
pm2 delete [ID] //根据应用ID关闭并删除应用
创建开机自启动
pm2 startup
更新PM2
pm2 updatePM2
pm2 update
监听模式
pm2 start app.js --watch //当文件发生变化,自动重启
静态服务器
pm2 serve ./dist 9090 //将目录dist作为静态服务器根目录,端口为9090
启用群集模式(自动负载均衡)
//max 表示PM2将自动检测可用CPU的数量并运行尽可能多的进程
//max可以自定义,如果是4核CPU,设置为2者占用2个
pm2 start app.js -i max
重新启动
pm2 restart app.js //同时杀死并重启所有进程。短时间内服务不可用。生成环境推荐使用reload
0秒停机重新加载
pm2 reload app.js //重新启动所有进程,始终保持至少一个进程在运行
pm2 gracefulReload all //优雅地以群集模式重新加载所有应用程序
查看启动列表
pm2 list
查看每个应用程序占用情况
pm2 monit
显示应用程序所有信息
pm2 show [Name] //根据name查看
pm2 show [ID] //根据id查看
日志查看
pm2 logs //查看所有应用日志
pm2 logs [Name] //根据指定应用名查看应用日志
pm2 logs [ID] //根据指定应用ID查看应用日志
保存当前应用列表
pm2 save
重启保存的应用列表
pm2 resurrect
清除保存的应用列表
pm2 cleardump
保存并恢复PM2进程
pm2 update
PM2配置文件方式
生成示例配置文件
pm2 ecosystem //生成一个示例JSON配置文件
pm2 init
配置文件示例(实际使用自行删除)
module.exports = {apps : [{name : 'API', //应用名script : 'app.js', //应用文件位置env: {PM2_SERVE_PATH: ".", //静态服务路径PM2_SERVE_PORT: 8080, //静态服务器访问端口NODE_ENV: 'development' //启动默认模式},env_production : {NODE_ENV: 'production' //使用production模式 pm2 start ecosystem.config.js --env production},instances:"max", //将应用程序分布在所有CPU核心上,可以是整数或负数watch:true, //监听模式output: './out.log', //指定日志标准输出文件及位置error: './error.log', //错误输出日志文件及位置,pm2 install pm2-logrotate进行日志文件拆分merge_logs: true, //集群情况下,可以合并日志log_type:"json", //日志类型log_date_format: "DD-MM-YYYY", //日志日期记录格式}],deploy : {production : {user : 'node', //ssh 用户host : '212.83.163.1', //ssh 地址ref : 'origin/master', //GIT远程/分支repo : 'git@github.com:repo.git', //git地址path : '/var/www/production', //服务器文件路径post-deploy : 'npm install && pm2 reload ecosystem.config.js --env production' //部署后的动作}}
};
pm2安装与使用(生产环境部署)相关推荐
- Linux高级实战部署--LNMP生产环境部署(mysql,nginx,php编译安装,项目部署)
LNMP生产环境部署 一.编译安装 MySQL MySQL 类型 #### 1.MySQL Community Server - MySQL Community Server是社区版本,开源免费,但不 ...
- Spring Boot 最佳实践(二)集成Jsp与生产环境部署
一.简介 提起Java不得不说的一个开发场景就是Web开发,也是Java最热门的开发场景之一,说到Web开发绕不开的一个技术就是JSP,因为目前市面上仍有很多的公司在使用JSP,所以本文就来介绍一下S ...
- 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)
本文主要向大家介绍了生产环境部署Python语言代码(django+uwsgi+nginx),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 基础环境不做介绍,在django开发w ...
- django生产环境部署
最近尝试进行一些python web生产环境部署的任务.主要是使用django框架进行web开发.本地使用windows + python3.7可是上到服务器之后是ubuntu系统.ubuntu默认是 ...
- Django + Uwsgi + Nginx 实现生产环境部署1
项目开发完毕后,需要将代码放到服务器上,这样用户才能访问.接下来我们一步一步来进行一波部署操作. 1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前 ...
- 深度学习TensorFlow生产环境部署(环境准备篇)
最近在研究Tensorflow Serving生产环境部署,尤其是在做服务器GPU环境部署时,遇到了不少坑.特意总结一下,当做前车之鉴. 1 系统背景 系统是ubuntu16.04 ubuntu@ub ...
- python生产环境部署
文章目录 一.前言 二.准备工作 三.安装python 四.安装虚拟环境 一.前言 在实际工作中,很多公司的生产环境都是隔离外网的,而且往往多个项目组共用相同的服务器,因此经常会遇到两个问题: pyt ...
- 11-02 生产环境部署 部署微电影网站
生产环境部署 关键点: 安装依赖包 关闭调试模式 app.debug = False 修改mysql数据库连接,导入数据 开启多个端口后台运行 配置nginx反向代理 安装依赖包 步骤1: 获取依 ...
- JAVA开发与运维(web生产环境部署)
web生产环境部署,往往是分布式,和开发环境或者测试环境我们一般使用单机不同. 一.部署内容 1.后端服务 2.后台管理系统vue 3.小程序 二.所需要服务器 5台前端服务器 8台后端服务 三.所需 ...
- 使用二进制包在生产环境部署 Kubernetes v1.13.2 集群
文章目录 使用二进制包在生产环境部署 Kubernetes v1.13.2 集群 一 背景 二 环境及架构图 2.1 软件环境 2.2 服务器规划 2.3 节点或组件功能简介 2.4 Kubernet ...
最新文章
- Developerkit Link Develop Demo 环境配置指南
- Keil C 里面Lib库文件的生成与调用
- 迁移pg_PG奥斯卡!云数据库专属集群MyBase荣获2020 PG亚洲大会“年度最佳产品奖”...
- 如何在Google文档中的图片周围换行
- oracle yyyy和yy,Oracle PL / SQL:SYSDATE与’DD-MMM-YY’的区别?
- 【C/C++】深入理解原子操作 volatile i为什么不能保证i++的原子性
- 最详细的git( Github和Gitee )入门使用(上传与克隆)
- 《数据库系统概念》20-恢复系统
- IntelliJ IDEA 14 license key gen
- Nginx调度器 Nginx常见问题-
- 跨专业北邮计算机考研,北京邮电大学跨专业考研心得
- Python 面向对象 (六) 实例学员管理系统
- ubuntu系统Firefox浏览器B站视频无法播放
- 采访UI设计师Kiro
- 【JAVA大厂面试必问】大厂面试八股文整理, 中厂小厂也爱问的八股文!
- 有限视图(Limited View)断层重建--CasRedSCAN论文阅读
- 【代理工具使用必备知识汇总】:vpn、socks5、代理客户端使用
- Softmax及其损失函数求导推导过程
- 共享充电语音提醒功能如何实现?
- 一文读懂 HTTP 协议的演化历程