首页 > 代码库 > nodejs安装和运行教程
nodejs安装和运行教程
本文讲述nodejs的安装的运行环境说明。关键工具:nodejs、npm、pm2
1. 名词说明:
1. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用。类似php、java等服务器端语言。
2. NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具。简单一点说就是插件管理工具
3. PM2 is perfect when you need to spread your stateless Node.js code accross all CPUs available on a server, to keep all processes alive forever and to 0s reload them.
nodejs 项目的发布和管理工具
2. 安装
1. 下载 nodejs的安装包 http://www.nodejs.org/download/
这也就能直接复制文件的url地址
1.源码安装 (推荐)
下载源码到本地 wget http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz
在命令行中输入:
如果没报错,
输入 node -v 查看node的安装版本
输入 npm -v 查看npm的版本
2 . 直接安装
wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz
下载好了后,解压:tar -zxvf node-v0.10.28-linux-x64.tar.gz
解压后不需要安装,直接把bin目录加到环境变量中即可。
3.nodejs 程序运行管理
1. node 启动x项目
最简单的nodejs web程序
保存以上代码 到 app.js 文件,开始运行
node app.js
在浏览器输入http://localhost:3001/ 即可看到输出 hello wolrd。
以上为简陋的项目启动方式,如果你退出终端,项目就停止运行了,也没有详细的内存和使用时长、日志等信息。
2. 神器 pm2
1.安装pm2 官方文档 https://github.com/Unitech/pm2
npm install pm2@latest -g
想要启动一个使用所有CPU核心的集群,你只需要键入如下的指令:
$ pm2start app.js -i max
pm2 start app.js -i3 # Will start 3 processes
然后:
$pm2 list
然后就会显示类似下面的东西(ASCII UI FTW);
就像你看到的,现在你的应用有多少个进程就取决于你的CPU核心数了
按照termcaps-HTOP(Linux下的系统监控与进程管理软件)的方式管理
通过pm2 list命令来观察所有运行的进程以及它们的状态已经足够好了.但是怎么来追踪它们的资源消耗呢?别担心,用这个命令:
$pm2 monit
你可以得到进程(以及集群)的CPU的使用率和内存占用.
声明:node-usage到目前为止还不支持MacOS(随便什么性能要求),不过它在Linux下运行良好.
现在,让我们来核实一下我们的集群,还有对内存堆栈的垃圾回收,我们假设你已经有一个HTTP基准测试工具(如果没有,你一定要使用WRK):
在另一个终端,运行监控选项:
$pm2 monit
耶~
实时集中log处理
现在你不得不管理多个集群进程:一个爬取数据,一个处理数据,等等…这就意味着大量log,你可以按照老式的方法处理:
$ tail -f /path/to/log1 /path/to/log2...
但我们想的很周到,我们增加了logs功能:
$pm2 logs
快速恢复
现在事情一切顺利,你的进程嗡嗡的运行着,你需要做一次硬重启(hard restart).现在吗?是的,首先,dump掉:
$pm2 dump
然后,你可以从文件中恢复它:
$ pm2kill //让我们假设一个PM2停掉了
1. 名词说明:
1. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用。类似php、java等服务器端语言。
2. NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具。简单一点说就是插件管理工具
3. PM2 is perfect when you need to spread your stateless Node.js code accross all CPUs available on a server, to keep all processes alive forever and to 0s reload them.
nodejs 项目的发布和管理工具
2. 安装
1. 下载 nodejs的安装包 http://www.nodejs.org/download/
有多个版本选择,windows、linux、mac 我这里选择linux64位
这也就能直接复制文件的url地址
1.源码安装 (推荐)
下载源码到本地 wget http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz
在命令行中输入:
tar -zxvf 文件名 cd node-v0.10.29 ./configure sudo make sudo make install
如果没报错,
输入 node -v 查看node的安装版本
输入 npm -v 查看npm的版本
2 . 直接安装
wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz
下载好了后,解压:tar -zxvf node-v0.10.28-linux-x64.tar.gz
解压后不需要安装,直接把bin目录加到环境变量中即可。
3.nodejs 程序运行管理
1. node 启动x项目
最简单的nodejs web程序
var http = require('http'), server = http.createServer(function (req, res) { res.writeHeader(200, {"Content-Type": "text/plain"}); res.end("Hello World\n"); }); server.listen(3001,function(){ console.log("http start 3001"); });
保存以上代码 到 app.js 文件,开始运行
node app.js
在浏览器输入http://localhost:3001/ 即可看到输出 hello wolrd。
以上为简陋的项目启动方式,如果你退出终端,项目就停止运行了,也没有详细的内存和使用时长、日志等信息。
2. 神器 pm2
1.安装pm2 官方文档 https://github.com/Unitech/pm2
npm install pm2@latest -g
想要启动一个使用所有CPU核心的集群,你只需要键入如下的指令:
$ pm2start app.js -i max
pm2 start app.js -i3 # Will start 3 processes
然后:
$pm2 list
然后就会显示类似下面的东西(ASCII UI FTW);
就像你看到的,现在你的应用有多少个进程就取决于你的CPU核心数了
按照termcaps-HTOP(Linux下的系统监控与进程管理软件)的方式管理
通过pm2 list命令来观察所有运行的进程以及它们的状态已经足够好了.但是怎么来追踪它们的资源消耗呢?别担心,用这个命令:
$pm2 monit
你可以得到进程(以及集群)的CPU的使用率和内存占用.
声明:node-usage到目前为止还不支持MacOS(随便什么性能要求),不过它在Linux下运行良好.
现在,让我们来核实一下我们的集群,还有对内存堆栈的垃圾回收,我们假设你已经有一个HTTP基准测试工具(如果没有,你一定要使用WRK):
1 2 3 4 5 | $ express bufallo //Create an express app $ cd bufallo $ npm install $ pm2 start app.js-imax $ wrk-c100-d100 http://localhost:3000/ |
$pm2 monit
耶~
实时集中log处理
现在你不得不管理多个集群进程:一个爬取数据,一个处理数据,等等…这就意味着大量log,你可以按照老式的方法处理:
$ tail -f /path/to/log1 /path/to/log2...
但我们想的很周到,我们增加了logs功能:
$pm2 logs
快速恢复
现在事情一切顺利,你的进程嗡嗡的运行着,你需要做一次硬重启(hard restart).现在吗?是的,首先,dump掉:
$pm2 dump
然后,你可以从文件中恢复它:
$ pm2kill //让我们假设一个PM2停掉了
$ pm2 resurect //我所有的进程又满血满状态复活了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。