个人博客node.js,mysql 项目阿里云ECS部署完整流程介绍
声明:只做简单的部署过程,在这里不做深入原理性的讨论。文中内容仅限于博主自己的实践过程,希望对未知的同学起引导的作用。
准备工作
在部署之前我们需要具备如下条件:
- 阿里云ECS服务器一台
- node.js项目源码一份
- mysql数据库文件一份
- 通过备案的域名一个
开始部署
我们先来看看下面的两项:
PM2:pm2 是一个带有负载均衡功能的Node应用的进程管理器,内建负载均衡(使用Node cluster 集群模块),后台运行,0秒停机重载,具有Ubuntu和CentOS 的启动脚本,停止不稳定的进程(避免无限循环)... ,因此我们需要pm2来为我们守护进程。
nginx: Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,其特点是占有内存少,并发能力强。
因此选择PM2做node.js应用的进程管理器,nginx做为HTTP和反向代理服务器。
一:ssh协议登录阿里云服务器
$ ssh -p22 root@你的服务器密码
enter键之后输入服务器密码 -> 登录成功
登录成功后界面:
登录成功之后我们需要安装如下几个工具 | 服务
nginx : LINUX系统下安装nginx
node.js : LINUX系统安装nvm 快速搭建Nodejs开发环境
请按照上面的链接相应的安装完成。
自此我们安装完成: nginx , node.js , cnpm , git
安装pm2
$ cnpm install pm2 -g
二:Linux系统安装mysql , 并使用阿里云的数据库管理工具管理mysql
- 安装mysql : 阿里云ECS在linux系统下手动安装MySQL5.6
请按照上面的链接安装mysql服务。
在配置我们的mysql之前我们需要配置一下服务器的安全组规则,我们需要开发3306 和 80端口
进入添加规则页面
添加80 和 3306 规则
接下来我们需要用阿里云的数据库管理工具来管理我们ESC服务器建立的mysql服务:
打开上面的链接进入数据库管理界面
自此安装mysql成功,并使用了阿里云的数据库管理工具管理mysql,登录数据库界面开始导入我们的数据库把。
阿里云数据库管理界面
对上面的内容进行总结,自此我们完成了如下操作:
- 安装完成nginx并启动成功
- 安装完成node.js 和 pm2
- 安装完成git
- 安装完成mysql , 并使用了阿里云的数据库管理工具
接下来我们要做的就是部署node.js 代码,配置nginx , 并做好域名解析
三:启动PM2服务,配置nginx , 解析域名
启动node.js 服务
回到ssh登录后的进程窗口,进入nginx目录
$ cd /usr/local/nginx
//创建放置代码的目录
$ mkdir web_blog
经过以上步骤我们创建了一个 web_blog 的目录 , 把node.js 源代码传入此目录 ,并执行安装依赖
$ cd web_blog
$ cnpm install
安装好依赖之后通过pm2 启动服务
//pm2 的命令请去网上查看 ,此命令的意思是创建了2个名为 myfirstblog 的node.js进程
pm2 start app.js -i 2 --name myfirstblog
配置nginx
nginx的配置有很多,在这里就不一一的阐述它的意思,需要了解的请百度搜索,这里贴出 nginx.config 我们需要增加的配置:
$ vim conf/nginx.conf
//新增如下server,请根据自己的实际情况来配置
server {
default_type 'text/html';
charset utf-8;
listen 80;
server_name www.xxx.com; //此处填写你的域名 可以多个用空格隔开即可
location / {
add_header X-Cache $upstream_cache_status; //可删除
proxy_pass http://127.0.0.1:18090/; //此处填写你的阿里云PM2启动的node.js服务 (必须配置)
proxy_redirect off; //(需要配置)
proxy_cache_key $uri$is_args$args; //可删除
}
}
自此nginx配置完毕,检查一下配置是否正确,并重启
$ sbin/nginx -t // /usr/local/nginx/sbin/nginx -t
$ sbin/nginx -s reload // /usr/local/nginx/sbin/nginx -s reload
最后一步:域名解析
域名解析就很简单了,直接贴一张图如下:
提醒:所有国内的主机都需要域名备案,如果你的域名没有备案,请选择香港、台湾、韩国、美国等非大陆的服务器即可
OK,整个部署流程完毕
在这里介绍了整个阿里云linux部署的过程,都比较简单,大家只需按照步骤走就定可以部署成功额!
提醒:你可能会看到git安装了之后没有用武之地,Don't worry ,后期可以使用git进行自动化部署,有三个方案介绍如下:
- git合并master分支代码触发部署:我们的代码使用git仓库管理,每次 提交|合并 master分支时,触发服务器自动拉取代码,安装更新,重启PM2服务,重启nginx服务。
- 本地脚本命令:本地电脑运行脚本命令 例如:npm run online-build , 此时触发自动node.js服务自动拉取git分支master分支代码,安装更新,重启PM2服务,重启nginx服务。
- 本地脚本命令:本地电脑运行脚本命令 例如:npm run online-build , 此时自动打包本地代码,并push到服务端,解压,安装更新,重启PM2服务,重启nginx服务。
以上三中自动部署方案我会再后面一一写文章阐述说明。
如果你有什么疑问就请给我留言吧,欢迎交流。
zane
发表于 2017-09-14 15:30:53,添加在了 linux
标签下打赏
您的支持将鼓励我继续努力与分享。


评论
正在加载验证码......
感谢博主分享
2021-02-02 10:23:55ok
2019-06-20 08:56:22写不错,谢谢
2018-05-24 18:18:16博主做博客有什么推荐的工具或者模板么 谢谢推荐
2018-05-17 11:00:43赞一个先。请问,1.博主的博客项目是完全自己写的项目吗?(方便介绍下用的什么技术栈么);2.评论,打赏功能也都是自己实现的?还是使用了第三方插件?谢谢。
2018-05-17 10:59:53很有帮助,谢谢博主
2017-12-28 17:22:31qian'pai
2017-09-14 17:55:00