node.js服务安装的三种方式

avatar 2020年3月16日18:15:56 评论 1,202 次浏览

node.js是一个机遇Charmoe V8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,Node是运行在JavcScript运行在服务端开发平台,有很多开源的项目都依赖于Node.js。所以这里先学习一下node.js安装。

第一种源码安装

下载nodejs文件

[root@www.wulaoer.org ~]# yum install -y gcc make gcc-c++ openssl-devel
[root@www.wulaoer.org ~]# wget https://nodejs.org/dist/v9.3.0/node-v9.3.0.tar.gz
--2019-04-04 17:31:52--  https://nodejs.org/dist/v9.3.0/node-v9.3.0.tar.gz
正在解析主机 nodejs.org (nodejs.org)... 104.20.22.46, 104.20.23.46, 2606:4700:10::6814:162e, ...
正在连接 nodejs.org (nodejs.org)|104.20.22.46|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:31133673 (30M) [application/gzip]
正在保存至: “node-v9.3.0.tar.gz”

100%[=======================================================================================>] 31,133,673  7.31MB/s 用时 5.2s   

2019-04-04 17:31:58 (5.74 MB/s) - 已保存 “node-v9.3.0.tar.gz” [31133673/31133673])

对于下载的文件进行解压安装

[root@www.wulaoer.org ~]# tar -xf node-v9.3.0.tar.gz 
[root@www.wulaoer.org ~]# cd node-v9.3.0
[root@www.wulaoer.org node-v9.3.0]# ./configure 
[root@www.wulaoer.org node-v9.3.0]# make && make install

注意,这部时间比较久,需要耐心等待

[root@www.wulaoer.org node-v9.3.0]# node -v
v9.3.0

如果编译过程中报 C++ Compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=g++),那需要先升级一下 gcc,编译正常的话请忽略直接跳至第五步开始安装,检查 gcc 的版本。

国内源码wget https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0.tar.gz

nodejs安装完成了,部署完成后nodejs为分别放在好几个文件夹内:

/usr/local/bin –放置nodejs 执行程序
/usr/lib –放置了node_modules,即nodejs的各种模块
/usr/include –放置了nodejs扩展开发用头文件

优点是全局安装nodejs模块,直接使用。

第二种直接安装

首先下载nodejs包

[root@www.wulaoer.org ~]# yum install -y wget
[root@www.wulaoer.org ~]# wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz

解压包

[root@www.wulaoer.org ~]# xz -d node-v9.3.0-linux-x64.tar.xz
[root@www.wulaoer.org ~]# tar -xf node-v9.3.0-linux-x64.tar

部署bin文件

[root@www.wulaoer.org ~]# ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node
[root@www.wulaoer.org ~]# ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm

测试

[root@www.wulaoer.org ~]# node -v
[root@www.wulaoer.org ~]# npm

第三种安装

curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
yum -y install nodejs

使用pm2部署nodejs,安装pm2

[root@www.wulaoer.org ~]# npm install -g pm2
/usr/local/bin/pm2 -> /usr/local/lib/node_modules/pm2/bin/pm2
/usr/local/bin/pm2-dev -> /usr/local/lib/node_modules/pm2/bin/pm2-dev
/usr/local/bin/pm2-docker -> /usr/local/lib/node_modules/pm2/bin/pm2-docker
/usr/local/bin/pm2-runtime -> /usr/local/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/pm2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ pm2@3.5.0
added 377 packages in 48.453s
[root@www.wulaoer.org ~]# 
查看一下安装的版本
[root@www.wulaoer.org ~]# pm2 -v
3.5.0

负载均衡

pm2 start app.js -i 3 # 开启三个进程
pm2 start app.js -i max # 根据机器CPU核数,开启对应数目的进程 

用法:

最简单的启用一个应用:  pm2 start app.js
停止:pm2 stop app_name|app_id
删除:pm2 delete app_name|app_id
重启:pm2 restart app_name|app_id
停止所有:pm2 stop all
查看所有的进程:pm2 list
查看所有的进程状态:pm2 status
查看某一个进程的信息:pm2 describe app_name|app_id

相关参数:

--watch:监听应用目录源码的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件

-i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目,可以弥补node.js缺陷

--ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如--ignore-watch="test node_modules "some scripts"


-n --name:应用的名称。查看应用信息的时候可以用到

-o --output <path>:标准输出日志文件的路径,有默认路径

-e --error <path>:错误输出日志文件的路径,有默认路径

--interpreter <interpreter>:the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script来编写应用

完整参数命令: pm2 start index.js --watch -i 2

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: