Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用
nodejs安装:https://www.cnblogs.com/loaderman/p/11596661.html
nodejs 进程管理器 pm2 的使用
PM2 是一款非常优秀的 Node 进程管理工具,它有着丰富的特性:能够充分利用多核 CPU 且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制 等情况下实现自动重启。
PM2 是开源的基于 Nodejs 的进程管理器,包括守护进程,监控,日志的一整套完整的功能。
PM2 的主要特性:
1、内建负载均衡(使用 Node cluster 集群模块)
2、后台运行
3、0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
4、具有 Ubuntu 和 CentOS 的启动脚本
5、停止不稳定的进程(避免无限循环)
6、控制台检测
PM2 的常见命令:
1、pm2 的安装
npm install pm2 -g # 命令行安装 pm2
2、运行 pm2 的程序并指定 name
pm2 start app.js --name www_aaa_com
pm2 start app.js -i 3 --name www_bbb_com 3 启动 3 个进程 (自带负载均衡)
3、显示所有进程状态
pm2 list
4、显示所有进程状态
pm2 logs
5、显示一个进程的日志
的日志 pm2 logs www_aaa_com
6、关闭重启所有进程
pm2 stop all# 停止所有进程
pm2 restart all# 重启所有进程
pm2 reload all # 0 秒停机重载进程 (用于 NETWORKED 进程)
7、关闭重启指定进程
pm2 stop 0 # 停止指定的进程
pm2 restart 0 # 重启指定的进程
pm2 stop www_aaa_com
pm2 restart www_aaa_com
8、杀死进程
m2 delete 0 # 杀死指定的进程
pm2 delete all # 杀死全部进程
pm2 delete www_aaa_com # 杀死指定名字的进程
10、显示相应进程/应用的总体信息
pm2 show www_aaa_com
测试演示过程说明:
到home下,创建www_aaa_com 和www_bbb_com 文件夹,将项目代码分别拷贝进去

用cnpm(gzip 压缩支持) 命令行工具代替默认的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
然后cnpm install 安装环境依赖
www_aaa_com app.js代码:
//引入 koa模块
var Koa=require('koa');
var router = require('koa-router')(); /*引入是实例化路由** 推荐*/
//实例化
var app=new Koa();
router.get('/',async (ctx)=>{
console.log('aaaa执行');
ctx.body="这是www_aaa_com的首页";
})
router.get('/news',async (ctx)=>{
ctx.body="这是www_aaa_com的新闻列表页面";
})
app.use(router.routes()); /*启动路由*/
app.use(router.allowedMethods());
app.listen(3001);
www_bbb_com 中app.js代码:
//引入 koa模块
var Koa=require('koa');
var router = require('koa-router')(); /*引入是实例化路由** 推荐*/
//实例化
var app=new Koa();
router.get('/',async (ctx)=>{
console.log('bbb执行');
ctx.body="这是www_bbb_com的首页111111111111";
})
router.get('/news',async (ctx)=>{
ctx.body="这是www_bbb_com的新闻列表页面";
})
app.use(router.routes()); /*启动路由*/
app.use(router.allowedMethods());
app.listen(3002);
关闭防火墙
systemctl stop firewalld
在对应的目录下,分别用pm2启动项目
pm2 start app.js --name www_aaa_com
pm2 start app.js --name www_bbb_com
Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用的更多相关文章
- nodeJS进程管理器pm2
pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...
- 【原创】windows下搭建vue开发环境+IIS部署
[原创]win10下搭建vue开发环境 如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安 ...
- windows下搭建vue开发环境+IIS部署
原创]win10下搭建vue开发环境 https://www.cnblogs.com/ixxonline/p/6007885.html 特别说明:下面任何命令都是在windows的命令行工具下进行输 ...
- node.js&pm2搭建node生产环境
node.js下载地址https://nodejs.org/en/download/stable/ 下载截图 建议采用稳定编译过的版本,source code稍麻烦,编译过的直接可用,安装超级简单,红 ...
- 1.WIN10下搭建vue开发环境
WIN10下搭建vue开发环境 详细的安装步骤如下: 一.安装node.js 说明:安装node.js的windows版本后,会自动安装好node以及包管理工具npm,我们后续的安装将依赖npm工具. ...
- mac os 下搭建android开发环境
mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...
- Mac下搭建php开发环境教程
方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...
- Windows下搭建Git开发环境
Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...
- Ubuntu 12.04下搭建Qt开发环境
http://download.qt.io/official_releases/qt/ Ubuntu 环境下Gtk与Qt编译环境安装与配置(系统环境是Ubuntu 12.04) 1.配置基础开发环境G ...
随机推荐
- 【Java字节码】Idea中查看Java字节码的插件jclasslib Bytecode viewer
Idea插件搜索:jclasslib Bytecode viewer 安装完后,maven install你的项目(因为该插件会读取target下的class文件),然后选中某个java文件,按下图操 ...
- Linux指令(文件目录类)
pwd 显示当前工作目录的绝对路径 ls [选项] [目录或是文件] 常用选项 -a 显示当前目录所有的文件和目录,包括隐藏的 -l 以列表的方式显示信息 cd [参数] (功能描述:切换到指定目录) ...
- Termux和Ubuntu建立ssh连接
1 本机环境 Android:Termux v0.77 作为客户端 Linux:Ubuntu 19.10 作为服务器 两者处于同一局域网下 2 ssh安装 2.1 Termux pkg install ...
- vsftpd配置文件
一.默认配置 1. 允许匿名用户和本地用户登录 anonymous_enable=YES local_enable=YES 2. 匿名用户使用的登录名为ftp或anonymous,密码为空:匿名用户不 ...
- 微信小程序校验文件在浏览器无法打开
txt文件放在网站根目录后浏览器无法打开,同一目录的其他txt文件却可以打开.我试过了修改文件权限.修改所有者.修改文件编码等各种办法都没有用. 最后找到了.htaccess文件,原来在这个文件里修改 ...
- 状压dp之位运算
## 一.知识 1.我们知道计算机中数据由二进制数存储,一个二进制数的一位就是计算机中数据的最小单位bit,我们有一种运算符可直接对二进制数进行位运算,所以它的速度很快. 2.C++中的位运算符有6种 ...
- 6、Python基础语法
一.Python输出 print是python输出的关键字,默认是输出内容后换行. 如果不想换行,需要在变量末尾加上 end="" . a = 'hello' b = 'world ...
- C# 反射(转)
什么是反射 Reflection,中文翻译为反射. 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’.‘模块(Module)’.‘类型 ...
- web自动化测试-selenium多表单切换
一.概述 1.在web应用中会经常遇到frame/iframe表单嵌套页面的应用 2.WebDriver只能在一个页面上对元素进行识别与定位 3.对于frame/iframe表单内嵌的页面上元素无法识 ...
- 修改Tomcat启动窗口的名称(Title)
内容简介 有时在运行项目时,在同一服务器会启动多个Tomcat,很难区分某个tomcat运行的是哪个项目,或者想查看tomcat的端口号,只能去server.xml中查看. 如果能把Tomcat窗口的 ...