Linux下安装Nodejs以及PM2工具

原创文章 作者:月光光 2018年03月27日 21:29helloweba.net 标签:JavaScript  Node.js  Linux 

我在介绍使用Nodejs作为服务端提供WebSocket服务,有同学提议要我写一篇关于node安装部署的文章,这不准备好了,本文教你安装nodejs和PM2,以及简单使用。

什么是nodejs

简单一句话,Node.js就是运行在服务端的 JavaScript,如果你熟悉Javascript,那么你将会很容易的学会Node.js。如果你想搞全栈,那你可以把nodejs作为后端开发语言,如大神般游走于前后端。

Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm,是全球最大的开源库生态系统。

npm又是什么鬼?npm其实是Node.js的包管理工具(package manager),就像你使用PHP的composer、Python的pip一样。

Nodejs可提供异步IO,可实现对高并发的高性能处理,应用到实时聊天、物联网、web服务、定时任务、异步数据处理等等很多场景。

安装Nodejs

1、到官网下载最新稳定版nodejs

根据自己机器系统环境下载对应的版本,我使用的64位的CentOS系统,因此我下载了node-v8.10.0-linux-x64.tar.xz这个包。

如果你想下载其他版本,访问这里:https://nodejs.org/dist/

2、解压

解压下载的压缩包:node-v8.10.0-linux-x64.tar.xz,需要先使用xz命令,再解压tar包。解压完成后,我们将nodejs移动到安装目录下,由于该版本已经编译好,因此无需再编译即可使用。

xz -d node-v8.10.0-linux-x64.tar.xz
tar -xvf node-v8.10.0-linux-x64.tar
mv node-v8.10.0-linux-x64 /usr/local/nodejs

3、设置环境变量

我们需要设置环境变量以便可以直接使用node命令。使用命令vim /etc/profile打开文件,在文件末尾加上以下两行,并保存。

export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH

保存好后,执行以下命令让配置立即生效:

source /etc/profile

4、验证

依次输入node -vnpm -v命令:

[root@localhost ~]# node -v
v8.10.0
[root@localhost ~]# npm -v
5.6.0

可以看到node的版本是v8.10.0,而且自带安装好了npm,版本是5.6.0。

5、安装cnpm镜像

由于众所周知的原因,npm命令安装依赖时会非常慢,因此我们使用淘宝镜像加速安装依赖,安装好后,就可以使用cnpm命令来安装常用的依赖。

npm install -g cnpm --registry=https://registry.npm.taobao.org

什么是PM2

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。

做node开发的同学应该知道,要让node作为服务站点跑起来,可以使用终端工具命令行执行如:

[root@localhost node-web]# node server.js 
Server running at http://127.0.0.1:8123/

这样node服务就跑起来了,server.js是一个简单的node提供的http服务,我们可以使用http://127.0.0.1:8123/访问,但是如果关闭终端连接,这站点即断开,服务终止。

那我们可以想办法让node在后台运行,关闭终端也不影响node提供服务,也许你想到了forever这个工具。

但是我推荐给大家使用PM2这个好工具,尤其在linux环境下表现出色,简单易用。

PM2具有以下特点:

  • 内建负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
  • 具有 Ubuntu 和 CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )

安装PM2

使用cnpm命令安装全局的pm2。

cnpm install -g pm2

pm2装好后,假如你写好了一个node代码文件server.js,可以使用以下命令来启动一个站点:

pm2 start server.js --name 'hello'

这时就启动了一个名称为“hello”的node进程。

接下来我们要做的是把pm2加入到开机启动中去,以便于pm2会随着服务器开机自启动,运行以下命令:

pm2 startup
pm2 save

我们还可以使用命令pm2 list查看当前node服务进程。

我们还可以使用pm2 show hello查看名称为“hello”的node进程详情。

更多有关PM2的使用说明请参考PM2项目github上的地址:https://github.com/Unitech/pm2

声明:本文为原创文章,helloweba.net和作者拥有版权,如需转载,请注明来源于helloweba.net并保留原文链接:https://www.helloweba.net/server/536.html

0条评论