云服务器

如何在云服务器上面搭建node服务

2020-04-22 11:39:51 102

前言
如果直接通过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

上一篇: 无

微信关注

获取更多技术咨询