nvm 的基本介绍
nvm 是一款针对于 node 版本的管理工具。随着 nodejs 的快速发展和广泛应 用,node 版本发展很快,版本前端差异性较大。因此很多场景需要对 node 版本 进行切换测试兼容性,以及测试模块对 node 版本的限制。
nvm 具有如下优点:
(1) 可安装多版本的 node。
(2) 可灵活切换当前应用的 node 版本。
(3) 以沙箱方式全局安装第三方组件到对应版本的 node 中。
2.2 nvm 的使用
nvm 是一个独立于 node 的外部 shell 脚本,关于 nvm 的使用在此主要介绍 其对于 node 版本管理的常用命令(包括 nvm 的安装和 node 版本的切换),以 及 node 对于全局安装组件的应用。
SHAPE \* MERGEFORMAT
2.2.1 常用命令
SHAPE \* MERGEFORMAT
安装稳定版本:
#nvm install stable
安装指定版本:
#nvm install 5.4
查看当前 node 版本(默认为最后一次安装版本):
#nvm current
切换 node 版本:
# nvm use 7
显示所有安装的版本:
# nvm ls
|
2.2.2 全局安装组件
nvm 可以通过沙箱(sandbox)的方式,将全局组件安装到.nvm 目录的当前 版本 node 下,使得全局组件与所安装的 node 版本有良好一致的对应关系。这 是 nvm 强大之处所在,非常适用于多运行环境的管理和切换。(关于下列操作 中涉及到的 npm,后文会有相应说明)。
SHAPE \* MERGEFORMAT
以全局方式安装 express 生成器:
# npm install –g express-generator
查看 express 默认使用版本:
#express –V
切换 node 版本:
#nvm use 0
全局安装 express3.0 版本:
#npm install –g express-generator@3nvm ls
|
SHAPE \* MERGEFORMAT
3 关于 npm 的使用说明
npm 是与 nodejs 协同安装的,支持第三方模块最多的包管理工具。
SHAPE \* MERGEFORMAT
升级 npm:
#npm install npm –g
使用 npm 安装 nodejs 模块:
#npm install <Module Name> (-g)
[注]使用-g 是全局安装。
查看所安装的模块:
#npm ls
更新模块:
#npm update <Module Name>
搜索模块:
#npm search <Module Name>
|
4 关于 pm2 的使用说明
pm2 是一个带有负载均衡功能的 node 应用进程管理工具,相关操作如下。
SHAPE \* MERGEFORMAT
启动:
#pm2 start app.js –watch
重启:
# pm2 restart app.js
停止:
可以先通过 pm2 list 命令来获取应用的名称或 id
#pm2 stop app_name|app_id
|
SHAPE \* MERGEFORMAT
停止所有应用:
# pm2 stop all
查看进行状态:
# pm2 list
查看某个进程信息:
#pm2 describe app_id
|
5 Mongodb 使用说明
5.1 软件目录
数据目录:
SHAPE \* MERGEFORMAT
日志目录:
SHAPE \* MERGEFORMAT
监控页面:
SHAPE \* MERGEFORMAT
5.2 常用命令
SHAPE \* MERGEFORMAT
【注意】在启动 mongodb 时,需要使用如下命令禁用大内存页面
SHAPE \* MERGEFORMAT
echo never >> /sys/kernel/mm/transparent_hugepage/enabled echo never >> /sys/kernel/mm/transparent_hugepage/defrag
|
SHAPE \* MERGEFORMAT
6 数据迁移
镜像部署的服务存储在系统盘中,随着服务量的增长,日志文件和数据库 使用量也会与日俱增,大量占用系统盘空间。我们建议如果挂载数据盘,则优 先考虑将服务迁移到数据盘中,这样将大大提高服务器的性能。
在迁移服务之前,需要先格式化、分区和挂载磁盘。具体操作见以下链接, 这里不再赘述。https://help.aliyun.com/document_detail/25426.html。
(1)导出数据
SHAPE \* MERGEFORMAT
#mongodump –d dbname –p passwd –o dbdireactory
|
-h: mongodb 所在服务器地址
-d: 需要备份的数据库名称,例如:test_data
-o: 备份的数据存放的位置,例如:/disk1/bak
-u: 用户名称,使用权限验证的 mongodb 服务,需要指明导出账号
-p:用户密码,使用权限验证的 mongodb 服务,需要指明导出账号密码
(2)导入数据
SHAPE \* MERGEFORMAT
#mongorestore -d dbname -dorectoryperdb dbdireactory
|
-h: mongodb 所在服务器地址
-d: 需要恢复备份的数据库名称
-directoryperdb: 备份数据所在位置,例如:/disk1/bak
-drop: 加上这个参数的时候,会在恢复数据之前删除当前数据;
(3)修复数据
①在启动 Mongo 时加上--repair 参数
②在 Mongo shell 中进行修复
>use db1
>db.repairDataBase()
7 部署案例
本案列已配置,具体过程如下。
(1)在使用本镜像安装系统后,我们可以在网页目录里编写服务端代码
app.js。
SHAPE \* MERGEFORMAT
SHAPE \* MERGEFORMAT
var app = require('express')();
var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){
res.send('君云,为企业云端资产保驾护航。');
});
http.listen(3000, function(){ console.log('listening on *:3000');
});
|
(2)然后使用 pm2 启动服务。这时在浏览器打开 http://ip:3000(该 ip 为 公网 ip)可以看到君云欢迎页面字样“君云,为企业云端资产保驾护航”。
SHAPE \* MERGEFORMAT
# cd /root/.nvm/versions/node/v7.8.0/lib/node_modules/pm2/
# pm2 start app.js
|
( 3 ) 如果需要绑定域名到此服务器上, 可修改 nginx 相应配置文件
(/etc/nginx/conf.d/default.conf),使用 nginx 做反向代理,将域名解析到服务 器 ip 即可。
SHAPE \* MERGEFORMAT
server
{
listen 80; #默认监听 80 端口 server_name domain; #配置域名或者公网 ip location / {
proxy_pass http://127.0.0.1:3000;
}
}
|
SHAPE \* MERGEFORMAT
用户评论
暂无评价