nodejs部署方式,编程基础
分类:前端技术

nodejs陈设格局-pm2(一)

2016/12/03 · JavaScript · NodeJS

本文小编: 伯乐在线 - pangjian 。未经小编许可,制止转发!
款待插手伯乐在线 专辑小编。

图片 1

近些日子Nodejs开拓中有相当多痛点,在那之中有贰个是修改完代码现在必要大家重启服务本领看出效果。那样一回次的杀进程、重启,杀进度、重启很令人头大。程序猿是最痛恨重复工作的物种,在此之前有询问过的同窗只怕清楚foreverforever能够帮大家消除地方的难题,通过对能源转移的检查评定做到变化后活动重启。开拓阶段大家利用node file.js来运转其他由于Nodejs的单线程,任何特别都会导致整个服务中断,这对于生产上长日子提供服务的次第来说是不能够的,forever能够帮我们在老大后重启,保险服务一向在线,笔者想那约等于它名字的由来啊。但自己想说的是forever相当不足“高!大!上!”。接下来笔者要介绍多少个十足高大上的神器– pm2

<<编制程序基础-语言JavaScript.Nodejs.Mobile>>
https://github.com/openstf

 

http://www.cnblogs.com/lan-writenbook/p/5473345.html
https://mp.weixin.qq.com/debug/wxadoc/dev/api/
http://blog.csdn.net/lilong_dream/article/details/23356513
http://www.linuxprobe.com/chapter-03.html
http://www.cnblogs.com/fnng/category/410088.html

简介

pm2=P(rocess) M(anager)2,是可以用于生产条件的Nodejs的经过管理工科具,何况它放到二个载重均衡。它不仅仅能够确定保证服务不会停顿平昔在线,並且提供0秒reload成效,还会有任何一八种进度管理、监察和控制成效。何况使用起来特简单。上边小编将把自家的利用进度共享出去,Nodejs应用是贰个基于Express 4.x的施用,名称是Wolverine

<pre>

供给(这段话是摘抄参谋文书档案的,因为我也想这么说):

       集团由于自作者隐秘体贴须要,不想把温馨的代码开源到包管理区,可是又供给一套完整包管工具,来保管更扩展的零部件、模块和连串。对于前端,最熟谙的其实npm,bower等;不过bower的商海包容性分明未有npm强健,加之commonjs规范的慢慢成熟。npm应该是前端包管理的不二挑选。

商家对此搭建本地私有npm库有如下供给:

  1. 私家包托管在内部服务器中

  2. 花色中应用了公走私货色仓上的公共包,也应用了内部服务器上的私有包

  3. 可望下载的时候,公共包走公共饭馆,私有包走内部服务器的私人民居房仓库

  4. 服务器硬盘有限,希望只缓存下载过的包,并非全部同步。

  5. 对此下载,发布npm包有对应的权杖管理,安装方便,配置轻易,重视少。

pm2是三个包罗负载均衡功效的应用进度管理器,类似有Supervisor,forever。
Linux Binaries下载地址:https://nodejs.org/dist
cd oneinstack/src
wget https://nodejs.org/dist/v4.2.4/node-v4.2.4-linux-x64.tar.gz
tar xzf node-v4.2.4-linux-x64.tar.gz
cp node-v4.2.4-linux-x64/bin/node /usr/local/bin/
cp -R node-v4.2.4-linux-x64/lib/node_modules /usr/local/lib/
ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
npm install pm2@latest -g #设置新型版本pm2模块
PS: 借让你的主机不能连接公网,先找到能连公网的主机安装上面包车型地铁办法安装pm2,然后拷贝到你要设置的主机。拷贝如下目录:
/usr/local/bin/node
/usr/local/lib/node_modules
再创造连锁软连接

安装

景况清单:

  • windows7 x64
  • node v5.0.0
  • npm 3.3.6

大局安装pm2

$ npm install pm2 -g

1
$ npm install pm2 -g

更新

$ pm2 update

1
$ pm2 update

pm2和forever是运营Nodejs服务常用到的七个工具。使用那四个指令能够使node服务在后台运维(类似于linux的nohup),其余它们得以在劳动机原因不胜或别的原因被杀掉后张开活动重启。 由于Node的单线程特征,自动重启能不小程度上的增加它的强健性。
正文比不上较两个工具优劣,只是结合自个儿的选拔,简单介绍怎么样在工程布置时更加好的利用pm2。

Sinopia 是贰个零配置的私有的带缓存功效的npm包管理工具。

三、PM2常用命令

启动

在此以前运行Wolverine是利用package.json的scripts来落到实处的,只须要施行npm run start就足以运维,配置如下:

"scripts": { "start": "node ./bin/www", "debug": "node debug ./bin/www" },

1
2
3
4
5
"scripts": {
    "start": "node ./bin/www",
    "debug": "node debug ./bin/www"
 
  },

使用pm2咱俩能够在start处配置成 pm2 ./bin/www,命令后边支持加参数来促成watch、cluster多进度形式等成效。作者不太喜欢一大串的授命,于是作者利用了配备文件的不二等秘书技。
Wolverine的根目录,小编创设了二个processes.json铺排文件,配置文件内容如下,注释写的也很精晓了

{ "apps" : [{ "name" : "Wolverine", //名称 "script": "./bin/www", //程序入库 "cwd": "./", //根目录 "watch":[ "bin", "common", "configs", "public", "routes", "views" ],//要求监察和控制的目录 "error_file":"./logs/app-err.log",//错误输出日志 "out_file":"./logs/app-out.log", //日志 "log_date_format":"YYYY-MM-DD HH:mm Z" //日期格式 }] }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "apps" : [{
    "name" : "Wolverine",  //名称
    "script": "./bin/www", //程序入库
    "cwd": "./",           //根目录
    "watch":[
"bin",
"common",
"configs",
"public",
"routes",
"views"
],//需要监控的目录
    "error_file":"./logs/app-err.log",//错误输出日志
    "out_file":"./logs/app-out.log",  //日志
    "log_date_format":"YYYY-MM-DD HH:mm Z" //日期格式
    }]
}

紧接着,作者在package.json中扩展了一条

"pm2": "pm2 start processes.json"

1
"pm2": "pm2 start processes.json"

在起步就从来输入如下命令就好:

$ npm run pm2

1
$ npm run pm2

看来上面包车型大巴分界面,就开动成功了,然后我们就足以关掉那么些窗口了,服务不会因而甘休,是否远大上多了。
图片 2

中央指令

npm install pm2 -g : 全局安装。
pm2 start app.js : 运营服务,入口文件是app.js。
pm2 start app.js -i [n] --name [name] : 运维n个进程,名字命名称为name。
npm restart [name or id] : 重启服务。
npm reload [name or id] : 和rastart成效雷同,然而足以兑现0s的无缝衔接;固然有nginx的应用经验,能够相比nginx reload指令。
pm2 start app.js --max_memory_restart 1024M : 当内部存款和储蓄器超越1024M时自动重启。 假如工程中有比较费力的内部存款和储蓄器走漏难题,这几个好不轻便二个折中方案。
pm2 monit : 对服务开展监察。

更加多的吩咐能够参照他事他说加以考察 PM2 介绍

1.要设置的软件

纵然你今后一度写好了三个app.js的文本,必要运营,你能够采取pm2展开保管

管理和督察

早先成功的分界面会来得App name和id,那七个值很主要。当然那五个值都得以在processes.json配置文件进行配置。
开发命令行,在别的路线下,输入

$ pm2 list

1
$ pm2 list

就会收看运行时的图样分界面,方便我们查阅全数通过pm2管理的Nodejs服务。

输入,上面发号施令同盟id大概name能够查阅某贰个经过的详细新闻

$ pm2 show Wolverine 或者 $ pm2 show 0

1
2
$ pm2 show Wolverine 或者
$ pm2 show 0

图片 3
剧情涉嫌重启次数、运转时刻、脚本路线、参数、日志路线、运行方式等等音信
输入

$ pm2 monit

1
$ pm2 monit

悬停、重启等一声令下

$ pm2 stop [app-name|id] #悬停某贰个进度,能够使用app-name或许id $ pm2 stop all #悬停全体进度 $ pm2 restart all #重启全数的经过 $ pm2 delete [app-name|id]#删除并停止进度 $ pm2 delete all #删去并甘休全部进度

1
2
3
4
5
6
7
$ pm2 stop [app-name|id]  #停止某一个进程,可以使用app-name或者id
$ pm2 stop all            #停止所有进程
 
$ pm2 restart all         #重启所有的进程
 
$ pm2 delete [app-name|id]#删除并停止进程
$ pm2 delete all          #删除并停止所有进程

能够更上一层楼查看每一个劳务的cpu、内部存储器动态占用情状。
图片 4

高等用法

pm2帮忙配置文件运转:
pm2 ecosystem: 生成配置文件ecosystem.json
pm2 startOrRestart /file/path/ecosystem.json : 通过配备文件运维服务

正如是本人付出时ecosystem.json的内容:

  {
    /**
    * Application configuration section
    * http://pm2.keymetrics.io/docs/usage/application-declaration/
    * 多个服务,依次放到apps对应的数组里
    */
    apps : [
    // First application
        {
            name      : "nova",
            max_memory_restart: "300M",
            script    : "/root/nova/app.js",
            out_file : "/logs/nova_out.log",
            error_file : "/logs/nova_error.log",
            instances  : 4,
            exec_mode  : "cluster",
            env: {
                NODE_ENV: "production"
            }
        }
    ]
 }

上述选用cluster情势运维了4个劳务进度;假设服务占用的内部存款和储蓄器超越300M,会自行进行重启。

软件简要介绍

nodejs/npm 软件名称: node-v6.9.1-linux-x64.tar.gz   下载地址:

设置命令:

tar -xvf node-v6.9.1-linux-x64.tar.gz

sinopia    版本:1.4.0 设置命令: 

npm install -g sinopia  

pm2   版本:2.1.4  安装命令

 npm install -g  pm2  

nrm   版本:1.0.0  设置命令

npm install -g nrm  
  1. 启动

日志监控

一经您直接利用tail -f log_file.log log_error.log来查阅日志,你可能会爱上上边包车型地铁这些意义。

$ pm2 logs $ pm2 logs [app-name]

1
2
$ pm2 logs
$ pm2 logs [app-name]

咱俩得以实时查看全数进度的日记,也许只查看某一个。大家以致足以采取json格式查看日志。

$ pm2 logs --json

1
$ pm2 logs --json

监察和控制工具

pm2的监督检查成效是其一大特色,它提供的监督服务Keymetrics monitoring 很炫人眼目,感兴趣的能够安顿玩一下。

规划目录(下为此次安装的实在目录,可依附实际条件调度)

目录 账户 备注
npm、nodejs解压目录 /opt/software nadmin

 

sinopia启动时目录 /home/nadmin nadmin

 

sinopia的passwd路径 /home/nadmin/node_htpasswd nadmin  
sinopia的storage路径 /home/nadmin/sinopia/storage nadmin 建议磁盘空间较大不推荐放在home目录

pm2 start app.js

Web API

倘若你不单想监察和控制被pm2管理的进度,还索要监察和控制进程所运维的机械的音讯,你能够采用上面那一个API

$ pm2 web

1
$ pm2 web

pm2会运转四个名称为pm2-http-interface的历程提供web服务。你张开浏览器输入http://127.0.0.1:9615,是还是不是被见到的结果惊艳到了。
图片 5
pm2提供的web api通过json输出了成都百货上千消息。大约结构能够看截图:
图片 6

拿出您的想象力,大家得以支付三个应用来调用此api,就足以支付出贰个图形分界面包车型大巴监督软件了。。。

部分思维

2.切实安装步骤(Server端)

pm2 start app.js --name my-api #my-api为PM2进程名称

其它

pm2的优势和作用还不唯有那么些,后续还有文章详述越多高级的用法,比方进度恢复、图形分界面,模块,以至的遵循开垦。最要紧的优势我想便是它的牢固性了,pm2的效应全部因而了测量检验,有超越一千个测量试验。同期提供Windows、MacOSX(OSX)、Linux的安定团结版本。PayPal、微软、IBM等等大厂都在使用。大家曾经有丰富的理由把它利用到生产条件上。

打赏扶持作者写出越多好文章,谢谢!

打赏我

1. 服务进程数

关于要开动多少个进度,能够经过服务器的内核数举行规定,多少个水源就开动多少个服务。指令如下:

  # 查看物理CPU个数
  cat /proc/cpuinfo| grep "physical id" | sort| uniq | wc -l

  # 查看每个物理CPU中core的个数(即核数)
  cat /proc/cpuinfo| grep "cpu cores"| uniq

  # 查看逻辑CPU的个数
  cat /proc/cpuinfo| grep "processor"| wc -l

本来可以运行多个端口,二个端口号对应三个劳动,那样的话就需求nignx来做负载均衡了。

创办账户nadmin

$ useradd nadmin

pm2 start app.js -i 0 #借助CPU核数运转进度个数

打赏协助自身写出更加的多好文章,多谢!

任选一种支付格局

图片 7 图片 8

1 赞 7 收藏 评论

2. 是不是要求nginx

nginx能够做的事情根本有三个:

  1. 反向代理,达成轻易的载荷均衡: 若是有多台服务器也许一台服务器多个端口,能够考虑用nginx。

  2. 静态能源缓存:把部分静态财富(如静态页面,js等能源文件)放到nginx里,能够大幅的增高劳动的质量。

安装node和npm

设置步骤1的目录和下令,解压软件 node-v6.9.1-linux-x64.tar.gz

(注:npm会在设置node的时候共同安装)

$ tar -xvf node-v6.9.1-linux-x64.tar.gz

添加node_home处处境变量,用root账户修改/etc/profile

$vim /etc/profile          #追加
NODE_HOME=/opt/software/node-v6.9.1-linux-x64
PATH=$PATH:$NODE_HOME/bin

source 使配置生效

$ source /etc/profile

布局生效之后,在随意地点可查阅版本如下:

1 $ node -v
2 v6.9.1
3 $ npm -v
4 3.10.8  

pm2 start app.js --watch #实时监察和控制app.js的章程运营,当app.js文件有退换时,pm2会自动reload

  1. 翻看进程

关于我:pangjian

图片 9

庞健,金融IT男。 个人主页 · 我的小说 · 5 ·   

图片 10

3. 自动化安顿

经过shell脚本完成财富拉取、服务重启、nginx缓存更新等操作,再协作pm2的监督成效,就起来落成了一个后端工程安插的标配了。

配置npm

先查看npm的配备文件地方

$npm config get userconfig
/home/nadmin/.npmrc

修改此布局文件,修改后翻看,内容如下

$ cat /home/nadmin/.npmrc
proxy=http://网络代理ip:8080/
https-proxy=http://网络代理ip:8080/
no_proxy=本地yum源ip
registry=https://registry.npm.taobao.org/

也可经过命令设置http网络代理地址和npm server的地址,如下:

$ npm config set proxy 

$ npm config set https-proxy 

$ npm config set registry ""

是因为上手续npm已经安装配备实现,所以下面包车型大巴安装软件可以由此npm命令进行

pm2 list

参谋资料:

  1. pm2官网

  2. node-deploy-practice

  3. pm2监控

pm2是丰硕美好工具,它提供对依附node.js的体系运作托管服务。它依照命令行分界面,提供数不完特色: 内置的载荷均衡器等等,上边我们就协同来探问吧。

一、简介

pm2是叁个饱含负载均衡功用的接纳进度处理器,类似有Supervisor,forever。

二、安装

Linux Binaries下载地址:https://nodejs.org/dist
cd oneinstack/src
wget https://nodejs.org/dist/v4.2.4/node-v4.2.4-linux-x64.tar.gz
tar xzf node-v4.2.4-linux-x64.tar.gz
cp node-v4.2.4-linux-x64/bin/node /usr/local/bin/
cp -R node-v4.2.4-linux-x64/lib/node_modules /usr/local/lib/
ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
npm install pm2@latest -g #安装新型版本pm2模块
PS: 要是您的主机不只怕连接公网,先找到能连公网的主机安装上边包车型客车不二秘籍安装pm2,然后拷贝到你要设置的主机。拷贝如下目录:
/usr/local/bin/node
/usr/local/lib/node_modules
再次创下设连锁软连接

三、PM2常用命令

纵然你今后曾经写好了二个app.js的文书,供给运转,你可以采纳pm2扩充保管

  1. 启动

安装sinopia

$npm install -g sinopia

pm2 show 0 或者 # pm2 info 0 #翻看进度详细消息,0为PM2进度id

  1. 监控

pm2 start app.js

配置sinopia

Sinopia的特色是,你在哪个目录运营,它的就能在对应的目录下创制和煦的公文。目录下暗中同意有多少个文本:config.yaml和storage,htpasswd 是丰裕客商之后自动创造的

是因为每回运维默许的config.xml文件是从原始文本default.yaml拷贝而来,可先修改sinopia原始的default.yaml

地方:sinopia安装目录/conf/ default.yaml

查看

$ pwd
/opt/software/node-v6.9.1-linux-x64/lib/node_modules/sinopia/conf
$ ll
total 12
-rw-rw-r-- 1 nadmin nadmin 1309 Nov 9 19:52 default.yaml
-rw-rw-r-- 1 nadmin nadmin 4076 Jun 7 2015 full.yaml
-rw-rw-r-- 1 nadmin nadmin   39 Jun 7 2015 README.md

修改完毕,内如下:

storage: ./storage
auth:
htpasswd:
   file: /home/nadmin/node_htpasswd
uplinks:
npmjs:
   url: http://registry.npm.taobao.org/
packages:
'@*/*':
   access: $all
   publish: $authenticated
'*':
   access: $all
   publish: $authenticated
   proxy: npmjs
logs:
- {type: stdout, format: pretty, level: http}
listen: 0.0.0.0:4873
http_proxy: http://代理服务器ip:8080
https_proxy: http://代理服务器ip:8080

pm2 monit

  1. 停止

pm2 start app.js --name my-api #my-api为PM2经过名称

启动 sinopia

在布署好的启航目录下实行命令sinopia

$ pwd
/home/nadmin
$ sinopia
warn --- config file - /home/nadmin/sinopia/config.yaml
warn --- http address - http://0.0.0.0:4873/
http --> 200, req: 'GET http://registry.npm.taobao.org/express', bytes: 0/578356
http <-- 200, user: admin, req: 'GET /express', bytes: 0/34448
http --> 200, req: 'GET http://registry.npm.taobao.org/type-is', bytes: 0/54083

sinopia已经运转,可通常使用,此种方法日志会输出到调控台,不建议使用,后边会介绍使用pm2对sinopia进程展开托管运行的诀要。

访问 查看页面,看见如下页面,表达sinopia安装成功!

图片 11

pm2 stop all #终止PM2列表中有着的长河

pm2 start app.js -i 0 #依靠CPU核数运转进度个数

安装pm2

$npm install -g pm2

使用pm2启动sinopia

$ pm2 start sinopia
[PM2] Applying action restartProcessId on app [sinopia](ids: 0)
[PM2] [sinopia](0) ✓
[PM2] Process successfully started

选取pm2托管的长河可以有限支撑进度永恒是活着的,尝试通过kill -9去杀sinopia的经过发现杀了未来又自动启起来。推荐应用此种情势运营sinopia.

 

pm2 开机自运维sinopia

pm2 startup centos,根据提醒用root账户实行:

# su -c "env PATH=$PATH:/opt/software/node-v6.9.1-linux-x64/bin pm2 startup centos -u nadmin --hp /home/nadmin"

pm2 运维sinopia 4个进程,且保存日志

$ pm2 start sinopia -i 4 --watch --merge-logs --log-date-format="YYYY-MM-DD HH:mm: Z" -l /opt/log/sinopia.log

保存当前安插,开机自运转时遵守此时布置运营

$ pm2 save

 

pm2 stop 0 #停下PM2列表中经过为0的进程

  1. 重载

pm2 start app.js --watch #实时监察和控制app.js的艺术运维,当app.js文件有变动时,pm2会自动reload

  1. 查看进程

安装nrm

nrm是 npm registry 管理工科具, 能够查阅和切换当前利用的registry。不安装也得以。

$npm install -g nrm

$ nrm ls
  npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
* taobao - https://registry.npm.taobao.org/
  nj ----- https://registry.nodejitsu.com/
  rednpm - http://registry.mirror.cqupt.edu.cn/
  npmMirror  https://skimdb.npmjs.com/registry/
  edunpm - http://registry.enpmjs.org/
  mytestnpm  http://ServerS:4873/  

使用命令

$ nrm add XXXXX # 增多本地的npm镜像地址

$ nrm use XXXX # 使用本址的镜像地址

pm2 reload all #重载PM2列表中具有的历程

pm2 list

3.验证

在客商端ServerC若是使用者已经设置npm/nrm並且一度不错配置

pm2 reload 0 #重载PM2列表中经过为0的长河

  1. 重启

pm2 show 0 或者 # pm2 info 0 #翻开进程详细新闻,0为PM2进程id

  1. 监控

1>npm install

后天验证使用刚刚搭建好的sinopia npm库(

修改npm的访谈代理为刚刚搭建好的

# cat .npmrc
registry=http://serverS:4873/

推行安装express的下令

$npm install express  

安装成功!

pm2 restart all #重启PM2列表中有所的进程

pm2 monit

  1. 停止

2>npm publish

本地假诺有可用来宣布的模块能够直接用,本地未有,使用npm init依据提示创制四个。

开始化创制三个模块

$npm init  

假设供给登陆才具publish则登入

运维npm adduser注册账号,如若已经有账号直接运转 npm login

签到成功时可通过npm whoami查看

推行发表

# npm publish chenyu/
  chenyu@1.0.0

去serverS查看刚刚publish的模块:成功!

 图片 12

pm2 restart 0 #重启PM2列表中经过为0的经过

  1. 删除PM2进程

pm2 stop all #甘休PM2列表中负有的进程

4.装置进度的一些报错和平解决决办法

pm2 delete 0 #删去PM2列表中经过为0的进度

pm2 stop 0 #悬停PM2列表中经过为0的经过

  1. 重载

1>注册账号战败Incorrect username or password

npm set registry http://ServerS:4873

npm adduser --registry http://Servers:4873

报错:Incorrect username or password

化解办法:把.npmrc中的互连网代理proxy/ https-proxy去掉就可以。

pm2 delete all #去除PM2列表中具有的长河

  1. 日记操作

pm2 reload all #重载PM2列表中持有的长河

2>在Client端使用新搭建的npm库安装软件的时候,报404不当

检查后发觉,Server端的npm的.npmrc夹钟sinopia的config.yaml中上网代理未安装,加上后就可以。

 

pm2 logs [--raw] #Display all processes logs in streaming

pm2 reload 0 #重载PM2列表中经过为0的进程

  1. 重启

5.附录(npm、pm2等的选取办法)

pm2 flush #Empty all log file

pm2 restart all #重启PM2列表中存有的进度

config.xml文件详解:

config.yaml是sinopia的布署文件

pm2 reloadLogs #Reload all logs

  1. 升级PM2

pm2 restart 0 #重启PM2列表中经过为0的长河

  1. 删除PM2进程

1>其常用的布局

storage: 仓库保存的地址,publish时旅馆保存的地点。

auth: htpasswd file:账号密码的公文地点,早先化时空头支票,可钦定要求手工制造。

               max_users:默许一千,为允许顾客注册的数码。

                    为-1时,区别意客户通过npm adduser注册。

                  然而,当为-1时,可以经过一直编写htpasswd file内容的办法丰盛客户。

语法:客商名:{SHA}哈希加密的字符=:autocreated 时间

加密算法:SHA1哈稀从此再转变到 Base64 输出就好

 

uplinks: 配置上游的npm服务器,重要用来央求的仓库不设有的时候到上游服务器去拉取。

packages: 配置模块。access访谈下载权限,publish包的宣布权限。

      格式如下:

scope:

          权限操作

 scope:三种格局

一种是 @*/* 表示某下属的某项目

  另一种是 * 相配项目名称(名称在package.json中有定义)

 权限:

l  access: 表示哪类顾客能够对郎才女貌的项目开展安装(install)

l  publish: 表示哪类客商能够对男才女貌的类型开展发布(publish)

l  proxy: 如其名,这里的值是对应于 uplinks 的称呼,要是地点不设有,允许去相应的uplinks去取。

  操作:

l  $all 表示全部人(已登记、未注册)都能够执行相应的操作

l  $authenticated 表示除非经过认证的人(已登记)能够举行相应操作,注意,任何人都得以去挂号账户。

l  $anonymous 表示除非无名者能够进行对应操作(平常无用)

l  恐怕也得以钦命对应于在此以前大家安顿的客户表 htpasswd 中的一个或多个客商,那样就一望而知地钦赐哪些顾客能够施行相配的操作

 

listen:配置监听端口和主机名。

       localhost:4873 #默认

       0.0.0.0:4873 #在富有网卡监听

代理:

#http_proxy:   #http代理

#https_proxy:   #https代理

#no_proxy: localhost,127.0.0.1  #不适用代理的iP

修改了配置文件后,运营命令

$ sinopia -c config.yml

npm install pm2@lastest -g #安装新型的PM2版本

pm2 delete 0 #剔除PM2列表中经过为0的经过

2>附录github中相比全的布置和验证

#仓库
# path to a directory with all packages
storage: ./storage

# a list of users
#
# This could be deprecated soon, use auth plugins instead (see htpasswd below).
users:
  admin:
    # crypto.createHash('sha1').update(pass).digest('hex')
    password: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

#是否支持web接口
web:
  # web interface is disabled by default in 0.x, will be enabled soon in 1.x
  # when all its issues will be fixed
  #
  # set this to `true` if you want to experiment with web ui now;
  # this has a lot of issues, e.g. no auth yet, so use at your own risk
  #enable: true

  title: Sinopia
  # logo: logo.png
  # template: custom.hbs

auth:
  htpasswd:
    file: ./htpasswd
    # Maximum amount of users allowed to register, defaults to " inf".
    # You can set this to -1 to disable registration.
    #max_users: 1000

# a list of other known repositories we can talk to
#上游npm服务器配置
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

#设置请求无应答超时时间
    # amount of time to wait for repository to respond
    # before giving up and use the local cached copy
    #timeout: 30s

#设置数据认为最新的时间为2分钟,2分钟同一个数据的请求不会向上游服务器请求
    # maximum time in which data is considered up to date
    #
    # default is 2 minutes, so server won't request the same data from
    # uplink if a similar request was made less than 2 minutes ago
    #maxage: 2m

#设置访问失败达到某次数,就停止一段时间不访问上游服务器,默认是2次不应答,5分钟不去请求
    # if two subsequent requests fail, no further requests will be sent to
    # this uplink for five minutes
    #max_fails: 2
    #fail_timeout: 5m

    # timeouts are defined in the same way as nginx, see:
    # http://wiki.nginx.org/ConfigNotation

#包权限配置
packages:
  # uncomment this for packages with "local-" prefix to be available
  # for admin only, it's a recommended way of handling private packages
  #'local-*':
  #  access: admin
  #  publish: admin
  #  # you can override storage directory for a group of packages this way:
  #  storage: 'local_storage'

  '*':
    # allow all users to read packages (including non-authenticated users)
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $all

    # allow 'admin' to publish packages
    publish: admin

#如果包本地不存在,则去npmjs去请求
    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs

#####################################################################
# Advanced settings
#####################################################################

# if you use nginx with custom path, use this to override links
#url_prefix: https://dev.company.local/sinopia/

# You can specify listen address (or simply a port).
# If you add multiple values, sinopia will listen on all of them.
#
# Examples:
#
#listen:
# - localhost:4873            # default value
# - http://localhost:4873     # same thing
# - 0.0.0.0:4873              # listen on all addresses (INADDR_ANY)
# - https://example.org:4873  # if you want to use https
# - [::1]:4873                # ipv6
# - unix:/tmp/sinopia.sock    # unix socket

#https证书配置(listen需要设置成https)
# Configure HTTPS, it is required if you use "https" protocol above.
#https:
#  key: path/to/server.key
#  cert: path/to/server.crt

# type: file | stdout | stderr
# level: trace | debug | info | http (default) | warn | error | fatal
#
# parameters for file: name is filename
#  {type: 'file', path: 'sinopia.log', level: 'debug'},
#
# parameters for stdout and stderr: format: json | pretty
#  {type: 'stdout', format: 'pretty', level: 'debug'},
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: sinopia.log, level: info}

#代理设置
# you can specify proxy used with all requests in wget-like manner here
# (or set up ENV variables with the same name)
#http_proxy: http://something.local/
#https_proxy: https://something.local/
#no_proxy: localhost,127.0.0.1

#设置json文档大小上限
# maximum size of uploaded json document
# increase it if you have "request entity too large" errors
#max_body_size: 1mb

# Workaround for countless npm bugs. Must have for npm <1.14.x, but expect
# it to be turned off in future versions. If `true`, latest tag is ignored,
# and the highest semver is placed instead.
#ignore_latest_tag: false

pm2 updatePM2 #升级pm2

  1. 越多命令参数请查看扶助

pm2 delete all #删去PM2列表中享有的经过

  1. 日记操作

npm常见使用命令

pm2 --help

四、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

五、自定义运转文件

创造多少个test.json的亲自过问文件,格式如下:
{
"apps":
{
"name": "test",
"cwd": "/data/wwwroot/nodejs",
"script": "./test.sh",
"exec_interpreter": "bash",
"min_uptime": "60s",
"max_restarts": 30,
"exec_mode" : "cluster_mode",
"error_file" : "./test-err.log",
"out_file": "./test-out.log",
"pid_file": "./test.pid"
"watch": false
}
}

说明:

apps:json结构,apps是一个数组,每贰个数组成员便是对应二个pm第22中学运维的运用
name:应用程序的称号
cwd:应用程序所在的目录
script:应用程序的脚本路线
exec_interpreter:应用程序的本子类型,这里运用的shell,默许是nodejs
min_uptime:最流年行时刻,这里设置的是60s即要是应用程序在60s内部退休出,pm2会认为程序非常退出,此时触发重启max_restarts设置数量
max_restarts:设置应用程序格外退出重启的次数,暗中认可19回(从0早先计数)
exec_mode:应用程序运行格局,这里安装的是cluster_mode(集群),默认是fork
error_file:自定义应用程序的一无可取日志文件
out_file:自定义应用程序日志文件
pid_file:自定义应用程序的pid文件
watch:是还是不是启用监控格局,默许是false。假设设置成true,当应用程序变动时,pm2会自动重载。这里也足以安装你要监督的公文。
详细参数列表:见附属类小部件八

六、实例

已下面的test.json为例

pm2 logs [--raw] #Display all processes logs in streaming

1>常用命令

npm install XX :本地安装,安装到当下的目录中

npm install –g XX :模块将棉被服装置到【全局目录】

查阅全局目录npm config get prefix

安装全局目录npm config set prefix XXX

查阅缓存目录npm config get cache

安装缓存目录npm cofnig set cache XXX

貌似选择全局安装,方便管理、结构清晰还足以另行使用

 

别的命令如下:

npm install <name>安装nodejs的依附包

举个例子说npm install express 就能暗中认可安装express的摩登版本,也得以通过在末端加版本号的主意安装钦定版本,如npm install express@3.0.6

npm install <name> -g  将包安装到全局意况中

不过代码中,直接通过require()的点子是尚未主意调用全局安装的包的。全局的装置是供命令行使用的,就象是全局安装了vmarket后,就能够在指令行中央政府机关接运转vm命令

npm install <name> --save  安装的同一时候,将消息写入package.json中

花色路径中一旦有package.json文件时,直接利用npm install方法就能够依据dependencies配置安装具有的依附包

如此那般代码提交到github时,就不要付出node_modules那些文件夹了。

npm init  会引导您成立三个package.json文件,富含名称、版本、笔者那些消息等

npm remove <name>移除

npm update <name>更新

npm ls 列出当下路径下安装的了颇有包

npm root 查看当前包的设置路线

npm root -g  查看全局的包的装置路线

npm help  援救,固然要单独查看install命令的佑助,能够利用的npm help install

npm config get cache 查看npm的缓存目录

下过的包都在当中,譬如刚刚下载的loadash

cat > /data/wwwroot/nodejs/test.sh << EOF

pm2 flush #Empty all log file

2>关于npm缓存目录的部分记下

npm安装的模块有五个缓存目录:
默认*inux和mac下是在顾客主目录下的.npm目录下,通过npm config get cache 能够查阅。window下则在%AppData%/npm-cache 目录下。

该目录下的模块结构为.npm/module_name/module_version/这种格局命名。

值得注意的是,执行npm install命令的时候npm只会检讨node_modules中是否存在该模块,若无则会去registry下载,无论.npm文件夹下是或不是留存。那也是install速度慢的多个缘故。

化解办法使用npm install --cache-min <整数小时> <package-name>;
其一命令的意趣是从缓存中开展安装,唯有再超出参数时间的时候才从regitry上设置。但内在也进展了贰回与registry的相互,只是相互的etag属性,服务器重回304意味着未有立异不必要下载

其他也得以将缓存目录设置成node_modules目录。

!/bin/bash

while :
do
echo "Test" >> 1.log
sleep 5
done
EOF

pm2 reloadLogs #Reload all logs

  1. 升级PM2

pm2命令详解

pm2是开源的依据Nodejs的进程管理器。满含进度、日志、监察和控制的一条龙完好无缺意义。它包括负载均衡功效,当你要把你的独门代码能源利用一切的服务器全数cpu,保障进程永久都以活着的,0秒的重载,PM2是完美的。

常用的吩咐介绍:

以下是pm2常用的命令行

$ pm2 start app.js              # 运营app.js应用程序

$ pm2 start app.js -i 4         # cluster mode 情势运维4个app.js的使用实例

                                # 4个应用程序会自行实行负荷均衡

                               

$ pm2 start app.js --name="api" # 运维应用程序并取名叫 "api"

$ pm2 start app.js --watch      # 当文件变化时自动重启应用

$ pm2 start script.sh           # 启动 bash 脚本

 

$ pm2 list                      # 列表 PM2 运营的全体的应用程序

$ pm2 monit                     # 展现每一种应用程序的CPU和内存占用情况

$ pm2 show [app-name]           # 展现应用程序的具有音讯

 

$ pm2 logs                      # 彰显全数应用程序的日志

$ pm2 logs [app-name]           # 彰显钦赐应用程序的日志

$ pm2 flush

 

$ pm2 stop all                  # 结束全体的应用程序

$ pm2 stop 0                    # 甘休 id为 0的钦定应用程序

$ pm2 restart all               # 重启全体应用

$ pm2 reload all                # 重启 cluster mode下的保有应用

$ pm2 gracefulReload all        # Graceful reload all apps in cluster mode

$ pm2 delete all                # 关闭并删除全体应用

$ pm2 delete 0                  # 删除内定应用 id 0

$ pm2 scale api 10              # 把名字叫api的采取扩张到拾贰个实例

$ pm2 reset [app-name]          # 复位重启数量

 

$ pm2 startup                   # 创制开机自运营命令

$ pm2 save                      # 保存当前采纳列表

$ pm2 resurrect                 # 重新加载保存的采纳列表

$ pm2 update                    # Save processes, kill PM2 and restore processes

$ pm2 generate                  # Generate a sample json configuration file

 

$ pm2 deploy app.json prod setup    # Setup "prod" remote server

$ pm2 deploy app.json prod          # Update "prod" remote server

$ pm2 deploy app.json prod revert 2 # Revert "prod" remote server by 2

 

$ pm2 module:generate [name]    # Generate sample module with name [name]

$ pm2 install pm2-logrotate     # Install module (here a log rotation system)

$ pm2 uninstall pm2-logrotate   # Uninstall module

$ pm2 publish                   # Increment version, git push and npm publish

一声令下验证:

停止sinopia:

$ pm2 stop sinopia

 

启动sinopia:

$ pm2 start sinopia

重启 sinopia:

$ pm2 retart sinopia

 

显示 sinopia 的log:

$ pm2 logs sinopia

chmod x test.sh #丰硕实践权限

npm install pm2@lastest -g #设置新型的PM2版本

6.参阅文档

 

pm2 start test.json #启动,如下图:

[图形上传失利...(image-680e62-1511421667535)]

pm2 updatePM2 #升级pm2

  1. 越多命令参数请查看帮忙

pm2 list #查看pm2进程,如下图:

[图片上传战败...(image-20bc39-1511421667535)]

七、备注
别的可参数见官方网址:http://pm2.keymetrics.io
安装:npm install -g pm2
启航程序:pm2 start <app_name|id|all>
历数进度:pm2 list
剥离程序:pm2 stop <app_name|id|all>
重起应用:pm2 restart
次第新闻:pm2 describe id|all
监控:pm2 monit
实时集中log管理: pm2 logs
API:pm2 web (端口:9615 )

pm2 --help

四、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

五、自定义运转文件

制造贰个test.json的示范文件,格式如下:
{
"apps":
{
"name": "test",
"cwd": "/data/wwwroot/nodejs",
"script": "./test.sh",
"exec_interpreter": "bash",
"min_uptime": "60s",
"max_restarts": 30,
"exec_mode" : "cluster_mode",
"error_file" : "./test-err.log",
"out_file": "./test-out.log",
"pid_file": "./test.pid"
"watch": false
}
}

说明:

apps:json结构,apps是三个数组,每二个数组成员便是对应三个pm第22中学运转的利用
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会自动重载。这里也得以安装你要监督的文书。
详见参数列表:见附件八

六、实例

已上边的test.json为例

cat > /data/wwwroot/nodejs/test.sh << EOF

!/bin/bash

while :
do
echo "Test" >> 1.log
sleep 5
done
EOF

chmod x test.sh #加上实施权限

pm2 start test.json #启动,如下图:

[图表上传战败...(image-291475-1511349583307)]

pm2 list #查看pm2进程,如下图:

[图形上传败北...(image-1f3f2c-1511349583307)]

七、备注
任何可参数见官方网址:http://pm2.keymetrics.io

====================================================================================================================

安装:npm install -g pm2

起初程序:pm2 start <app_name|id|all>

列举进程:pm2 list

剥离程序:pm2 stop <app_name|id|all>

重起应用:pm2 restart

程序消息:pm2 describe id|all

监控:pm2 monit

实时聚焦log管理: pm2 logs

API:pm2 web (端口:9615 )

<pre>

使用PM2来部署nodejs项目。

借使直接通过node app来运转,假诺报错了恐怕平素停在总体运转,supervisor感到只是拿来作为开垦遭遇的。再网络找到pm2.脚下犹如最广泛的线上配置nodejs项目标有forever,pm2这三种。
采纳场地:

  • supervisor是付出条件用。

  • forever处理七个站点,各样站点访谈量非常的小,无需监察和控制。

  • pm2 网站访谈量十分大,供给完整的督查分界面。

PM2的关键特色:

  • 内建负载均衡(使用Node cluster 集群模块)

  • 后台运转

  • 0秒停机重载,作者知道大约意思是保护升级的时候没有供给停机.

  • 全体Ubuntu和CentOS 的启航脚本

  • 悬停不安静的进度(幸免Infiniti循环)

  • 调控台检查评定

  • 提供 HTTP API

  • 长途调整和实时的接口API ( Nodejs 模块,允许和PM2经过管理器交互 )

安装

npm install -g pm2

用法

$ npm install -g pm2 命令行全局安装pm2
$ pm2 start app.js 启动app项目
$ pm2 list 列出由pm2管理的有所进度消息,还大概会显得三个经过会被运行多少次,因为没管理的要命。

图片 13

image

$ pm2 monit 监视各个node进度的CPU和内部存款和储蓄器的利用情状

图片 14

image

$ pm2 logs 显示全体进程日志
$ pm2 stop all 甘休全部进度
$ pm2 restart all 重启全部进度
$ pm2 reload all 0秒停机重载进程 (用于 NETWO帕杰罗KED 进程)
$ pm2 stop 0 结束钦点的进程
$ pm2 restart 0 重启内定的进程
$ pm2 startup 产生 init 脚本 保持进度活着
$ pm2 web 运维强壮的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0 杀死钦定的进程
$ pm2 delete all 杀死所有经过

运作进程的例外方法:
$ pm2 start app.js -i max 依据有效CPU数目运行最大进度数目
$ pm2 start app.js -i 3 启动3个进程
$ pm2 start app.js -x 用fork格局运营 app.js 实际不是选取 cluster
$ pm2 start app.js -x -- -a 23 用fork模式运转 app.js 並且传递参数 (-a 23)
$ pm2 start app.js --name serverone 运营三个历程并把它取名字为serverone
$ pm2 stop serverone 停止 serverone 进程
$ pm2 start app.json 运行进度, 在 app.json里设置选项
$ pm2 start app.js -i max -- -a 23 在--之后给 app.js 传递参数
$ pm2 start app.js -i max -e err.log -o out.log 运营 并 生成贰个配备文件

铺排pm2起步文件

在品种根目录增加二个processes.json:
剧情如下:

{
  "apps": [
    {
      "name": "mywork",
      "cwd": "/srv/node-app/current",
      "script": "bin/www",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "/var/log/node-app/node-app.stderr.log",
      "out_file": "log/node-app.stdout.log",
      "pid_file": "pids/node-geo-api.pid",
      "instances": 6,
      "min_uptime": "200s",
      "max_restarts": 10,
      "max_memory_restart": "1M",
      "cron_restart": "1 0 * * *",
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "fork",
      "autorestart": false,
      "vizion": false
    }
  ]
}

说明:

  • apps:json结构,apps是一个数组,每二个数组成员即便对应三个pm第22中学运作的使用

  • name:应用程序名称

  • cwd:应用程序所在的目录

  • script:应用程序的本子路线

  • log_date_format:

  • error_file:自定义应用程序的不当日志文件

  • out_file:自定义应用程序日志文件

  • pid_file:自定义应用程序的pid文件

  • instances:

  • min_uptime:最小运行时刻,这里安装的是60s即只要应用程序在60s内部退休出,pm2会感到程序极其退出,此时触发重启max_restarts设置数量

  • max_restarts:设置应用程序分外退出重启的次数,暗许十八回(从0初叶计数)

  • cron_restart:定期运营,解决重启能一蹴即至的难题

  • watch:是或不是启用监察和控制方式,暗中同意是false。如若设置成true,当应用程序变动时,pm2会自动重载。这里也能够设置你要监督的文件。

  • merge_logs:

  • exec_interpreter:应用程序的台本类型,这里运用的shell,默许是nodejs

  • exec_mode:应用程序运转形式,这里设置的是cluster_mode(集群),默认是fork

  • autorestart:启用/禁止使用应用程序崩溃或剥离时自动重启

  • vizion:启用/禁止使用vizion天性(版本调控)

能够通过pm2 start processes.json来启动。
也得以把命令写在package.json里。如下:

图片 15

image

pm2 是一个分包负载均衡效能的Node应用的长河管理器.

当你要把您的独门代码应用一切的服务器上的保有CPU,并确定保障进度永世都活着,0秒的重载, PM2是无一不备的。它可怜切合IaaS结构,但不用把它用于PaaS方案(随后将开垦Paas的建设方案).

备注:SaaS、PaaS和IaaS是云服务情势。
SaaS 软件即服务,举个例子Google的 Gmail 邮箱服务.面向应用型客户.
PaaS 平台即服务.比如Google的GAE,面向开垦型客户
IaaS 基础架构即服务,举个例子亚马逊的AWS,IaaS对于不知晓新推出的应用程序/网址会有多成功的创办实业集团来讲十三分平价

请参考
云服务情势:SaaS、PaaS和IaaS,哪类相符你?

至关重大特征:

内建负载均衡(使用Node cluster 集群模块)

后台运转

0秒停机重载,小编知道大约意思是珍爱晋级的时候没有供给停机.

享有Ubuntu和CentOS 的运维脚本

停下动荡的历程(制止Infiniti循环)

调整台检查实验

提供 HTTP API

长间距调节和实时的接口API ( Nodejs 模块,允许和PM2历程管理器交互 )

测试过Nodejs v0.11 v0.10 v0.8版本,兼容CoffeeScript,基于Linux 和MacOS.

安装

npm install -g pm2

用法

$ npm install pm2 -g # 命令行安装 pm2

$ pm2 start app.js -i 4 #后台运维pm2,运维4个app.js

                            # 也可以把'max' 参数传递给 start

                            # 正确的进程数目依赖于Cpu的核心数目

$ pm2 start app.js --name my-api # 命名进度

$ pm2 list # 展现全体进度景况

$ pm2 monit # 监视全体进度

$ pm2 logs # 展现全数进度日志

$ pm2 stop all # 结束全数进度

$ pm2 restart all # 重启全体进度

$ pm2 reload all # 0秒停机重载进程 (用于 NETWO福特ExplorerKED 进程)

$ pm2 stop 0 # 结束内定的进度

$ pm2 restart 0 # 重启钦命的进程

$ pm2 startup # 发生 init 脚本 保持进程活着

$ pm2 web # 运转强壮的 computer API endpoint (

http://localhost:9615

)

$ pm2 delete 0 # 杀死钦点的长河

$ pm2 delete all # 杀死全部进程

运作进程的例外方法:

$ pm2 start app.js -i max # 依照有效CPU数目运营最大进度数目

$ pm2 start app.js -i 3 # 启动3个进程

$ pm2 start app.js -x #用fork情势运营 app.js 并不是应用 cluster

$ pm2 start app.js -x -- -a 23 # 用fork形式运营 app.js 何况传递参数 (-a 23)

$ pm2 start app.js --name serverone # 运转三个历程并把它命名字为serverone

$ pm2 stop serverone # 停止 serverone 进程

$ pm2 start app.json # 运维进度, 在 app.json里设置选项

$ pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数

$ pm2 start app.js -i max -e err.log -o out.log # 运营 并 生成三个布置文件

您也得以试行用另外语言编写的app ( fork 格局):

$ pm2 start my-bash-script.sh -x --interpreter bash

$ pm2 start my-python-script.py -x --interpreter python

0秒停机重载:

这项功效允许你重新载入代码而不用失去央浼连接。

注意:

仅能用来web应用

运行于Node 0.11.x版本

运维于 cluster 方式(暗中认可情势)

$ pm2 reload all

CoffeeScript:

$ pm2 start my_app.coffee #那便是全数

PM2计划好为产等级服务了啊?

只需在您的服务器上测验

$ git clone

https://github.com/Unitech/pm2.git

$ cd pm2

$ npm install # 恐怕 npm install --dev ,倘若devDependencies 未有设置

$ npm test

pm2 list

列出由pm2管理的兼具进度新闻,还有或者会呈现叁个进度会被运营多少次,因为没管理的格外。

|

图片 16

image

|
| |

pm2 monit

监视每一种node进度的CPU和内部存款和储蓄器的采纳状态。

|

图片 17

image

|

本文由pc28.am发布于前端技术,转载请注明出处:nodejs部署方式,编程基础

上一篇:基于客户作为的图纸等能源预加载,前端质量优 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • Canvas完毕监察和控制种类页面呈现,json工控风机
    Canvas完毕监察和控制种类页面呈现,json工控风机
    传说 HTML5 Canvas 达成客车站监察和控制 2017/11/21 · HTML5 ·Canvas 初稿出处: hightopo    陪伴国内经济的长足发展,大家对安全的渴求更为高。为了防卫下列景
  • 不足挂齿的,层叠上下文
    不足挂齿的,层叠上下文
    深入领会CSS中的层叠上下文和层叠顺序 2016/01/10 · CSS ·层叠上下文 原稿出处:张鑫旭    零、凡间的道理都以想通的 在此个世界上,所有的事都有个前后
  • 那或许是史上最全的CSS自适应布局总计,html清除
    那或许是史上最全的CSS自适应布局总计,html清除
    那或许是史上最全的CSS自适应布局计算 2016/05/11 · CSS ·自适应布局 原来的文章出处: 茄果    题目严谨坚守了新广告法,你再不爽,小编也没不合规呀!
  • 网页内文字如何拉长和压扁
    网页内文字如何拉长和压扁
    一、IE和Chrome等浏览器与zoom 还在几年前, zoom 还只是IE浏览器自身个人的玩意儿,不过,以后,除了FireFox浏览器,其余,非常Chrome和平运动动端浏览器已经
  • 资源大全,开发资源
    资源大全,开发资源
    CSS 资源大全 2015/12/25 · CSS · 1评论 ·CSS 本文由 伯乐在线 -iLeo翻译,艾凌风校稿。未经许可,禁止转载! 英文出处:github.com。欢迎加入翻译组。 sotayamash