MEAN 栈实践之 在 CVM、AWS 上部署小记
简单记录了当初考虑在 腾讯云 还是 AWS 部署服务的小记,虽然最终还是在 阿里云上部署。。。
Ⅰ. 腾讯云 CVM 部署
考虑数据库与服务器配置在同一主机上,勾选磁盘空间
配置 ssh 公钥
1.本地 ssh-keygen
生成密钥, 在 ~/.ssh/config
中添访问配置
1
2
3
4
5
Host qcloud
HostName 公网IP
User root
Port 22
IdentityFile ~/.ssh/qcloud_rsa
2.在云主机配置公钥
3.连接云主机 ssh qcloud
MongoDB 的安装
1.连接云主机
2.编辑 /etc/yum.repos.d/mongodb-org-3.4.repo
文件
1 |
|
3.执行 sudo yum install -y mongodb-org
进行安装
4.对于类 SELinux 系统 ,需要置成 disabled
5.mongod 操作: sudo service mongod
+ start
, stop
, restart
6.配置开机自启动 sudo chkconfig mongod on
Ⅱ. AWS 部署
安全组配置
类型 | 协议 | 端口范围 | 来源 |
---|---|---|---|
HTTP | TCP | 80 | 0.0.0.0/0 |
所有 ICMP | 全部 | 不适用 | 0.0.0.0/0 |
退出 SSH 继续运行程序
执行
screen
进入子界面执行程序
sudo node ./bin/www
ctrl + A
后键入D
退出子界面退出 SSH,程序会继续运行
再次连接 SSH,执行
screen -ls
查看由screen维护的进程id1
2
3There is a screen on:
20232.pts-0.ip-172-31-30-2 (01/19/17 07:24:36)(Detached)
1 Socket in /var/run/screen/S-ubuntu.screen -r 20232.pts-0.ip-172-31-30-2
进入子界面管理 node 进程
使用PM2管理程序
安装pm2
[sudo] npm install pm2 -g
创建一个apps.json,然后通过pm2 start apps.json来启动apps.json里面定义的apps,该文件就是一个json格式的配置文件,告诉pm2该怎么去启动app,启动哪些app。比如:
1
2
3
4
5
6
7
8
9
10
11
12[{
"name":"your app name",
"script":"the script to start your app",
"cwd":"change working directory", // 指定该app工作目录,这样pm2会相对这个目录去找脚本之类的。
"error_file":"app-err.log",
"out_file":"app-out.log",
"pid_file":"app.pid",
"one_launch_only":"true",
"env": {
"NODE_ENV":"production"
}
}]