如何在云服务器上面搭建node服务
前言
如果直接通过node app来启动node服务的话,如果报错了可能直接停在整个运行,所以我选择了好评度较高的pm2来管理我的node。pm2是一个进程管理工具,维护一个进程列表,可以用它来管理你的node进程,负责所有正在运行的进程,并查看node进程的状态,也支持性能监控,负载均衡等功能。
PM2的主要有以下特性:
内建负载均衡(使用Node cluster 集群模块)
后台运行
0秒停机重载
具有Ubuntu和CentOS 的启动脚本
停止不稳定的进程
控制台检测
提供 HTTP API
远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )
我的一些基础配置信息:
主机:睿江云云服务器
主机系统为:Ubuntu_16.04_64
第1步:安装node
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy
sudo apt-get install npm
查看node和npm版本
由于默认安装的版本过低,需要升级一下node版本,下面我用nvm来更新node的版本到10.15.3
安装nvm
sudo curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
sudo source ~/.bashrc
sudo nvm install v10.15.3
升级后的版本如下:
第2步:安装PM2
使用npm使用以下命令安装PM2:
npm install pm2 -g
PM2常用的命令行如下:
pm2 start app_name|app_id 启动应用
pm2 logs 显示所有进程日志
pm2 list 查看所有进程
pm2 status 查看所有的进程状态
pm2 stop all 停止所有进程
pm2 stop app_name|app_id 停止指定的进程
pm2 restart all 重启所有进程
pm2 reload all 0秒停机重载进程
pm2 restart app_name|app_id 重启指定的进程
pm2 startup 产生 init 脚本保持进程活着
pm2 delete app_name|app_id 删除指定的进程
pm2 delete all 删除全部进程
想了解更多关于PM2的用法,请请前往官网http://pm2.keymetrics.io/。
第3步:上传并启动项目
这里,我在/var/www/html下创建一个文件夹nodetest来存放我的项目,把项目上传到nodetest下:
进入项目目录:
cd /var/www/html/nodetest
上传项目代码,此处我用的是一个简单的node应用做测试,server.js
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8888);
运行项目:
pm2 start server.js
通过浏览器输入:主机+node服务端口号,就可以正常访问node服务项目,效果如下:
至此,node项目在服务器部署就结束了,希望能给你们带来参考价值。
后期一些PM2相关的更多试用,以及优化配置请参考https://github.com/jawil/blog/issues/7。
睿江云官网链接:www.eflycloud.com