pm2进程管理多个nodeJs项目介绍

简介

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单(supervise)。PM2适用于企业级的nodeJS项目,拥有比forever更加完善的功能。

对于nodeJS的话,只做一些简单介绍

我们知道JavaScript是运行在浏览器中的,浏览器为它提供了一个上下文(context),从而让JavaScript得以解析执行。
nodeJS其实可以这么理解,它是另外一种上下文,它允许在后端(脱离浏览器环境)解析执行JavaScript代码。因为它使用了Google的V8虚拟机(Google的Chrome浏览器使用的上下文环境),所以代码可以同理德被执行。nodeJS除了可以在浏览器端显示结果之外,还可以直接在控制台输出。

安装

在node环境下安装比较简单,嫌慢的话可以考虑(cnpm)

npm install -g pm2

目录介绍

pm2安装好后,会自动创建下面目录。

  • $HOME/.pm2 will contain all PM2 related files
  • $HOME/.pm2/logs will contain all applications logs
  • $HOME/.pm2/pids will contain all applications pids
  • $HOME/.pm2/pm2.log PM2 logs
  • $HOME/.pm2/pm2.pid PM2 pid
  • $HOME/.pm2/rpc.sock Socket file for remote commands
  • $HOME/.pm2/pub.sock Socket file for publishable events
  • $HOME/.pm2/conf.js PM2 Configuration

使用案例

以nodeJS的框架express来举例
pm2进程管理多个nodeJs项目介绍_第1张图片

目录结构介绍
  • bin是项目的启动文件,配置以什么方式启动项目,默认 npm start
  • public是项目的静态文件,放置js css img等文件
  • routes是项目的路由信息文件,控制地址路由
  • views是视图文件,放置模板文件ejs或jade等(其实就相当于html形式文件啦~)
    express这样的MVC框架模式,是一个Web项目的基本构成
直接输入npm start启动就可以

pm2进程管理多个nodeJs项目介绍_第2张图片

以上都是准备工作

PM2管理express项目开始

一般我们都是通过npm start启动应用,其实就是调用node ./bin/www。那么,换成pm2就是

	pm2 start ./bin/www --watch

注意,这里用了–watch参数,意味着当你的express应用代码发生变化时,pm2会帮你重启服务。

官方文档地址:http://pm2.keymetrics.io/docs/usage/quick-start

常用命令

启动
	pm2 start app.js --watch -i 2
参数说明:
  1. –watch:监听应用目录的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件。
  2. -i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目。
  3. –ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如–ignore-watch=“test node_modules “some scripts””
  4. -n --name:应用的名称。查看应用信息的时候可以用到。
  5. -o --output :标准输出日志文件的路径。
  6. -e --error :错误输出日志文件的路径。
  7. –interpreter :the interpreter pm2 should use for executing app (bash, python…)。比如你用的coffee script来编写应用。
重启
pm2 restart app.js
停止

停止特定的应用。可以先通过pm2 list获取应用的名字(–name指定的)或者进程id。

pm2 stop app_name|app_id

如果要停止所有应用,可以

pm2 stop all

运行监控的效果
在这里插入图片描述

你可能感兴趣的:(nodeJs)