搭建Nodejs生产环境

搭建Nodejs生产环境

安装模块
使用mp2管理Nodejs进程
安装Nginx
MongDB安装+管理权限设置
MongDB 数据迁移
MongDB 自动备份

安装模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

[email protected]:~$ sudo apt-get install vim openssl build-essential libssl-dev wget curl git

[email protected]:~$ nvm install 8.9.4

[email protected]:~$ nvm use v8.9.4
Now using node v8.9.4 (npm v5.6.0)
[email protected]:~$ nvm alias default v8.9.4
default -> v8.9.4
[email protected]:~$ node -v
v8.9.4
[email protected]:~$ npm --registry=https://registry.npm.taobao.org install -g npm


[email protected]:~$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

使用mp2管理Nodejs进程

1
2
3
4
5
6
7
8

pm2 start app.js

pm2 list

pm2 show app

pm2 log

安装Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14

// 服务器可能预装apache
[email protected]:~$ sudo service apache2 stop

// 更新包列表
[email protected]:~$ sudo apt-get update
// 安装Nginx
[email protected]:~$ sudo apt-get install nginx

// 进入 /etc/nginx/conf.d/ 创建文件 z-uyonug-cn-8081.conf
// sudo nginx -t 检查文件
// 重启 Nginx
[email protected]:/etc/nginx/conf.d$ sudo nginx -s reload
[email protected]:/etc/nginx$ sudo service nginx reload

MongDB安装+管理权限设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

// 开启MongoDB
[email protected]:/etc/nginx$ sudo service mongod start
// 停止开启MongoDB
[email protected]:/etc/nginx$ sudo service mongod stop
// 重启
[email protected]:/etc/nginx$ sudo service mongod restart
// 进入mongo命令行
> use admin //输入
switched to db admin
> db.createUser({user:'用户名',pwd:'密码',roles:[{role:'userAdminAnyDatabase',db:'admin'}]}) //创建全局管理员

Successfully added user: {
"user" : "uyoung",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
// 为imooc-chat 数据库设置单独读写账户
> db.createUser({user:'imooc_chat',pwd:'imooc',roles:[{role:'readWrite',db:'imooc-chat'}]})

// 只读账户用于备份程序
db.createUser({user:'imooc_chat_wheel',pwd:'beifen',roles:[{role:'read',db:'imooc-chat'}]})

// 开启验证模式
[email protected]:~$ sudo vi /etc/mongod.conf
security:
authorization: 'enabled'

// 进入数据库后
> use admin
> db.auth('用户名', '密码') //返回1认证成功

$ mongo 127.0.0.1:27017/imooc-chat -u imooc_chat -p imooc

MongDB 数据迁移

MongDB 自动备份

1
2
3
4
5

// 创建脚本
[email protected]:~$ mkdir task
[email protected]:~$ mv task tasks
[email protected]:~$ cd tasks/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

#!/bin/sh


backUpFolder=/home/uyoung/backup/imooc-chat
date_now=`data +%Y_%m_%d_%H%M`
backFileName=imooc-chat_$date_now



cd backUpFolder
mkdir -p $backFileName

mongodump -h 127.0.0.1:27017 -d imooc-chat -u imooc_chat_wheel -p beifen -o $backFileName


tar zcvf $backFileName.tar.gz $backFileName

rm -rf $backFileName
1
2
3
4
5
6
7
8
9
10

$ sudo sh ./tasks/imooc-chat.backup.sh
// 为脚本设置定时
[email protected]:~$ crontab -e

// 测试定时命令
13 00 * * * SH /home/uyoung/tasks/imooc-chat.backup.sh

// 完善定时命令 凌晨4点执行
00 4 * * * SH /home/uyoung/tasks/imooc-chat.backup.sh
分享到:
Disqus 加载中...

如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理