ECS如何部署Node.js项目(CentOS)-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

ECS如何部署Node.js项目(CentOS)

boxti 2017-10-18 16:40:48 2072
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用来方便地搭建快速的易于扩展的网络应用。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效,非常适合运行在分布式设备的数据密集型的实时应用。Node.js 的包管理器 npm,是全球最大的开源库生态系统。典型的应用场景包括:
  • 实时应用:如在线聊天,实时通知推送等等(如socket.io)
  • 分布式应用:通过高效的并行I/O使用已有的数据
  • 工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序
  • 游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架)
  • 利用稳定接口提升Web渲染能力
  • 前后端编程语言环境统一:前端开发人员可以非常快速地切入到服务器端的开发(如著名的纯Javascript全栈式MEAN架构)


适用对象


本文档介绍如何在阿里云CentOS系统的云服务器ECS实例上,安装Nodejs并部署项目。

准备工作


部署之前,请做如下准备工作:
  • 购买ECS实例
  • 您的实例运行的镜像是CentOS7.2
  • 您的实例可以连接公网
  • 本地已经安装用于连接 Linux 实例的工具,如 Xshell


基本流程


使用云服务器 ECS 安装Nodejs并部署项目的操作步骤如下:
  1. 购买 ECS 实例。
  2. 部署Node.js环境-二进制文件安装。
  3. 部署Node.js环境-使用NVM安装多版本。
  4. 部署测试项目。

注:2和3步骤,根据您的实际应用场景,任选其一。

操作步骤



步骤 1:创建ECS实例


选择操作系统为公共镜像CentOS7.2。使用root用户 登录Linux实例

步骤2:部署Node.js环境—二进制文件安装


该部署过程使用的安装包是已编译好的二进制文件,解压之后,在bin文件夹中就已存在node和npm,无需手工编译。
安装步骤:
1、 wget命令下载Node.js安装包。
该安装包是编译好的文件,解压之后,在bin文件夹中就已存在node和npm,无需重复编译。
  1. [backcolor=transparent]wget https[backcolor=transparent]:[backcolor=transparent]//nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz

2、 解压文件。
  1. [backcolor=transparent]tar xvf node[backcolor=transparent]-[backcolor=transparent]v6[backcolor=transparent].[backcolor=transparent]9.5[backcolor=transparent]-[backcolor=transparent]linux[backcolor=transparent]-[backcolor=transparent]x64[backcolor=transparent].[backcolor=transparent]tar[backcolor=transparent].[backcolor=transparent]xz

3、创建软链接,使node和npm命令全局有效。
通过创建软链接的方法,使得在任意目录下都可以直接使用node和npm命令:
  1. [backcolor=transparent]ln [backcolor=transparent]-[backcolor=transparent]s [backcolor=transparent]/[backcolor=transparent]root[backcolor=transparent]/[backcolor=transparent]node[backcolor=transparent]-[backcolor=transparent]v6[backcolor=transparent].[backcolor=transparent]9.5[backcolor=transparent]-[backcolor=transparent]linux[backcolor=transparent]-[backcolor=transparent]x64[backcolor=transparent]/[backcolor=transparent]bin[backcolor=transparent]/[backcolor=transparent]node [backcolor=transparent]/[backcolor=transparent]usr[backcolor=transparent]/[backcolor=transparent]local[backcolor=transparent]/[backcolor=transparent]bin[backcolor=transparent]/[backcolor=transparent]node
  2. [backcolor=transparent]ln [backcolor=transparent]-[backcolor=transparent]s [backcolor=transparent]/[backcolor=transparent]root[backcolor=transparent]/[backcolor=transparent]node[backcolor=transparent]-[backcolor=transparent]v6[backcolor=transparent].[backcolor=transparent]9.5[backcolor=transparent]-[backcolor=transparent]linux[backcolor=transparent]-[backcolor=transparent]x64[backcolor=transparent]/[backcolor=transparent]bin[backcolor=transparent]/[backcolor=transparent]npm [backcolor=transparent]/[backcolor=transparent]usr[backcolor=transparent]/[backcolor=transparent]local[backcolor=transparent]/[backcolor=transparent]bin[backcolor=transparent]/[backcolor=transparent]npm

4,查看node、npm版本。
  1. [backcolor=transparent]node [backcolor=transparent]-[backcolor=transparent]v
  2. [backcolor=transparent]npm [backcolor=transparent]-[backcolor=transparent]v

5、至此,Node.js环境已安装完毕。
软件默认安装在/root/node-v6.9.5-linux-x64/目录下。如果需要将该软件安装到其他目录(如:/opt/node/)下,请进行如下操作:
  1. [backcolor=transparent]mkdir [backcolor=transparent]-[backcolor=transparent]p [backcolor=transparent]/[backcolor=transparent]opt[backcolor=transparent]/[backcolor=transparent]node[backcolor=transparent]/
  2. [backcolor=transparent]mv [backcolor=transparent]/[backcolor=transparent]root[backcolor=transparent]/[backcolor=transparent]node[backcolor=transparent]-[backcolor=transparent]v6[backcolor=transparent].[backcolor=transparent]9.5[backcolor=transparent]-[backcolor=transparent]linux[backcolor=transparent]-[backcolor=transparent]x64[backcolor=transparent]/* /opt/node/
  3. [backcolor=transparent]rm -f /usr/local/bin/node
  4. [backcolor=transparent]rm -f /usr/local/bin/npm
  5. [backcolor=transparent]ln -s /opt/node/bin/node /usr/local/bin/node
  6. [backcolor=transparent]ln -s /opt/node/bin/npm /usr/local/bin/npm


步骤3:部署Node.js环境-使用NVM安装多版本


NVM(Node version manager)是Node.js的版本管理软件,使用户可以轻松在Node.js各个版本间进行切换。适用于长期做 node 开发的人员或有快速更新node版本、快速切换node版本这一需求的用户。
安装步骤:
1、直接使用git将源码克隆到本地的~/.nvm目录下,并检查最新版本。
  1. [backcolor=transparent]yum install git
  2. [backcolor=transparent]git clone https[backcolor=transparent]:[backcolor=transparent]//github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

2、激活NVM。
  1. [backcolor=transparent]echo [backcolor=transparent]". ~/.nvm/nvm.sh"[backcolor=transparent] [backcolor=transparent]>>[backcolor=transparent] [backcolor=transparent]/etc/[backcolor=transparent]profile
  2. [backcolor=transparent]source [backcolor=transparent]/[backcolor=transparent]etc[backcolor=transparent]/[backcolor=transparent]profile

3、列出Node.js的所有版本。
  1. [backcolor=transparent]nvm list[backcolor=transparent]-[backcolor=transparent]remote

4、安装多个Node.js版本。
  1. [backcolor=transparent]nvm install v6[backcolor=transparent].[backcolor=transparent]9.5
  2. [backcolor=transparent]nvm install v7[backcolor=transparent].[backcolor=transparent]4.0

5、查看已安装Node.js版本,当前使用的版本为v6.9.5。
  1. [backcolor=transparent][[backcolor=transparent]root@iZuf62didsxigy36d6kjtrZ [backcolor=transparent].[backcolor=transparent]nvm[backcolor=transparent]]#[backcolor=transparent] nvm ls
  2. [backcolor=transparent]->[backcolor=transparent]       v6[backcolor=transparent].[backcolor=transparent]9.5
  3. [backcolor=transparent]         v7[backcolor=transparent].[backcolor=transparent]4.0

6、切换Node.js版本至v7.4.0。
  1. [backcolor=transparent][[backcolor=transparent]root@iZuf62didsxigy36d6kjtrZ [backcolor=transparent].[backcolor=transparent]nvm[backcolor=transparent]]#[backcolor=transparent] nvm [backcolor=transparent]use[backcolor=transparent] v7[backcolor=transparent].[backcolor=transparent]4.0
  2. [backcolor=transparent]Now[backcolor=transparent] [backcolor=transparent]using[backcolor=transparent] node v7[backcolor=transparent].[backcolor=transparent]4.0

NVM的更多操作请参考帮助文档:
  1. [backcolor=transparent]nvm help


步骤4:部署测试项目


1、新建项目文件example.js。
  1. [backcolor=transparent]cd [backcolor=transparent]~
  2. [backcolor=transparent]touch example[backcolor=transparent].[backcolor=transparent]js

2、使用vim编辑器打开项目文件example.js。
  1. [backcolor=transparent]yum install vim
  2. [backcolor=transparent]vim example[backcolor=transparent].[backcolor=transparent]js

输入“i”,进入编辑模式,将以下项目文件内容粘贴到文件中。使用“Esc”按钮,退出编辑模式,输入“:wq”,回车,保存文件内容并退出。
[backcolor=transparent]项目文件内容:
  1. [backcolor=transparent]const[backcolor=transparent] http [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]require[backcolor=transparent]([backcolor=transparent]'http'[backcolor=transparent]);
  2. [backcolor=transparent]const[backcolor=transparent] hostname [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]'0.0.0.0'[backcolor=transparent];
  3. [backcolor=transparent]const[backcolor=transparent] port [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]3000[backcolor=transparent];
  4. [backcolor=transparent]const[backcolor=transparent] server [backcolor=transparent]=[backcolor=transparent] http[backcolor=transparent].[backcolor=transparent]createServer[backcolor=transparent](([backcolor=transparent]req[backcolor=transparent],[backcolor=transparent] res[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]=>[backcolor=transparent] [backcolor=transparent]{
  5. [backcolor=transparent]res[backcolor=transparent].[backcolor=transparent]statusCode [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]200[backcolor=transparent];
  6. [backcolor=transparent]res[backcolor=transparent].[backcolor=transparent]setHeader[backcolor=transparent]([backcolor=transparent]'Content-Type'[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]'text/plain'[backcolor=transparent]);
  7. [backcolor=transparent]res[backcolor=transparent].[backcolor=transparent]end[backcolor=transparent]([backcolor=transparent]'Hello World\n'[backcolor=transparent]);
  8. [backcolor=transparent]});
  9. [backcolor=transparent]server[backcolor=transparent].[backcolor=transparent]listen[backcolor=transparent]([backcolor=transparent]port[backcolor=transparent],[backcolor=transparent] hostname[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]=>[backcolor=transparent] [backcolor=transparent]{
  10. [backcolor=transparent]console[backcolor=transparent].[backcolor=transparent]log[backcolor=transparent]([backcolor=transparent]`Server running at http://${hostname}:${port}/`[backcolor=transparent]);
  11. [backcolor=transparent]});

注:项目文件内容中的3000为端口号,可以自行定义。
3、运行项目。
  1. [backcolor=transparent]node [backcolor=transparent]~/[backcolor=transparent]example[backcolor=transparent].[backcolor=transparent]js

注:可以使用命令“node ~/example.js &”将项目置于后台运行。
4、使用命令查看项目端口是否存在。
netstat -tpln
5、在浏览器中输入 http://IP:端口号 访问项目。

相关链接


用户可通过云中沙箱平台体验上述文档中的操作, 点击此处。
更多开源软件尽在云市场, 点击此处
Web App开发 弹性计算 JavaScript 前端开发 Linux 开发工具 git 内存技术
分享到
取消 提交回答
全部回答(0)
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题