NodeJs服务器管理

来源:互联网 发布:老男孩linux运维视频 编辑:程序博客网 时间:2024/05/29 08:41

服务器管理是系统上线后需要面对的问题。最好有一个软件可以提供整套的服务器运行解决方案:要求运行稳定,启动/停止命令简单,支持热部署,宕机重启,监控日志,集群环境等。NodeJs服务器管理模块有forever、pm2等。

forever是一个简单的命令式nodejs的守护进程,能够启动,停止,重启App应用。forever完全基于命令行操作,在forever进程之下,创建node的子进程,监控node子进程的运行情况,一旦文件更新(不推荐使用),或者进程挂掉,forever会自动重启node服务器,确保应用正常运行。

系统环境:win7 64bit, node v0.10.32, npm v1.4.28
执行 npm install forever命令,一般安装在全局node_modules下,如本机的全局NodeJs路径是D:\NodeJS\node_modules(需配置环境变量)。

1.测试forever是否安装成功:执行forever命令,这时会可能会出现:’forever’不是内部或外部命令,也不是可运行的程序或批处理文件。
解决办法:找到NodeJS安装目录,如D:\NodeJS。然后你会发现nodejs模块的启动都是靠一个*.cmd文件启动的,打开npm.cmd文件,这时你会发现如下代码:
这里写图片描述

其实它执行的是node_modules\npm\bin\npm-cli.js这个文件。So,你只需要在D:\NodeJS目录下建一个forever.cmd文件,添加如下内容:这里写图片描述

再次执行forever 命令
这里写图片描述

2. forever命令行的解释:

子命令actions:

start:启动守护进程
stop:停止守护进程
stopall:停止所有的forever进程
restart:重启守护进程
restartall:重启所有的foever进程
list:列表显示forever进程
config:列出所有的用户配置项
set : 设置用户配置项
clear : 清楚用户配置项
logs: 列出所有forever进程的日志
logs <script|index>: 显示最新的日志
columns add : 自定义指标到forever list
columns rm : 删除forever list的指标
columns set: 设置所有的指标到forever list
cleanlogs: 删除所有的forever历史日志

配置参数options:

–m MAX: 运行指定脚本的次数
–l LOGFILE: 输出日志到LOGFILE
–o OUTFILE: 输出控制台信息到OUTFILE
–e ERRFILE: 输出控制台错误在ERRFILE
–p PATH: 根目录
–c COMMAND: 执行命令,默认是node
–a, –append: 合并日志
–f, –fifo: 流式日志输出
–n, –number: 日志打印行数
–pidFile: pid文件
–sourceDir: 源代码目录
–minUptime: 最小spinn更新时间(ms)
–spinSleepTime: 两次spin间隔时间
–colors: 控制台输出着色
–plain: –no–colors的别名,控制台输出无色
–d, –debug: debug模式
–v, –verbose: 打印详细输出
–s, –silent: 不打印日志和错误信息
–w, –watch: 监控文件改变
–watchDirectory: 监控顶级目录
–watchIgnore: 通过模式匹配忽略监控
–h, –help: 命令行帮助信息

3.forever服务器管理:假定现在有一个NodeJS项目,项目名称为bms,放在F:\WebStromWorkspace目录下。cmd进入到项目目录下,执行forever start app.js 如下:
这里写图片描述

4. 模拟服务器宕机:两种测试方案
1) 在任务管理器中直接kill node进程。
在执行forever start app.js命令后,打开windows任务管理器,可以看到有两个node.exe进程,下图中上面的那个是NodeJS应用进程,另外那个则是NodeJS的守护进程(forever)。
这里写图片描述

这时在任务管理器中kill NodeJS应用进程,可以看到forever会立即重新启动一个NodeJs应用进程(如果先将守护进程kill,再将NodeJs应用进程kill,那么NodeJs应用进程不会重启)。

2) 在NodeJS应用中,模拟异常退出。
修改app.js(也可以是其他文件)文件。应用在启动10秒后抛出错误,模拟程序挂掉。
这里写图片描述

首先通过node命令启动:
这里写图片描述

10秒钟后,由于程序内部错误, node进程挂掉了。

通过forever命令启动:
这里写图片描述

10秒钟后,观察F:\WebStromWorkspace\bms\logs\access.log文件或windows任务管理器可以看到NodeJS应用进程每隔10秒钟,由于程序内部错误而挂掉,然后被forever重启。

0 0
原创粉丝点击