华为云服务器手工部署Node.js(CentOS 7.2)_云淘科技
简介
本文介绍了如何在华为云上使用弹性云服务器的Linux实例部署Node.js。
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
更多关于Node.js信息,请参见https://nodejs.org。
该操作以“CentOS 7.2 64bit(40G)”操作系统为例,使用的Node.js软件包版本为“node-v10.14.1-linux-x64.tar”及“node-v10.14.2-linux-x64.tar”。
前提条件
已创建弹性云服务器,创建过程请参考购买弹性云服务器。
弹性云服务器需要绑定弹性公网IP,具体步骤参见为弹性云服务器申请和绑定弹性公网IP。
为了更好的获取和更新系统和软件,建议您更新镜像源为华为云镜像源,详细操作,请参见如何使用自动化工具配置华为云镜像源(x86_64和ARM)?。
本地已经安装用于连接 Linux 弹性云服务器的工具(如 PuTTY)。
操作步骤
安装Node.js安装包。
使用二进制文件安装。
登录弹性云服务器。
执行以下命令,下载Node.js安装包。
wget https://nodejs.org/dist/v10.14.1/node-v10.14.1-linux-x64.tar.xz
执行以下命令,解压文件。
tar xvJf node-v10.14.1-linux-x64.tar.xz
依次执行以下命令,为node及npm建立软连接,可在任意目录下执行node及npm命令。
ln -s /root/node-v10.14.1-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v10.14.1-linux-x64/bin/npm /usr/local/bin/npm
依次执行以下命令,查看node及npm版本。
node -v
npm -v
使用NVM版本管理器安装多版本。
登录弹性云服务器。
执行以下命令,安装git。
yum install git
执行以下命令,使用git将源码克隆到本地的~/.nvm目录下,并检查最新版本。
git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe –abbrev=0 –tags`
执行以下命令,激活NVM,并将其追加至profile文件下。
echo “. ~/.nvm/nvm.sh” >> /etc/profile
执行如下命令,使环境变量生效。
source /etc/profile
执行以下命令,列出Node.js可用版本。
nvm ls-remote
执行以下命令,安装多个Node.js版本。
nvm install v10.14.1
nvm install v10.14.2
执行以下命令,查看已安装的Node.js版本。
nvm ls
执行以下命令切换Node.js版本至V10.14.2。
nvm use v10.14.2
执行nvm alias default v10.14.2,设置默认版本为10.14.2。
执行nvm help,获取更多NVM操作信息。
部署测试项目。
执行以下命令,进入用户主目录。
cd
执行以下命令,新建项目文件test.js。
touch test.js
使用vim编辑器编辑项目文件test.js。
执行以下命令,安装Vim编辑器。
yum install vim
执行以下命令,打开项目文件test.js。
vim test.js
按i键进入编辑模式。
输入以下项目文件内容,修改打开的“test.js”文件。
const http = require('http'); const hostname = '0.0.0.0'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World '); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
端口号port可自定义。
按Esc键退出编辑模式,并输入:wq保存后退出。
执行以下命令,查看已开启端口。
netstat -lntp
若定义端口不存在,需登录弹性云服务器控制台,更改安全组规则,具体步骤参见添加安全组规则。
添加防火墙例外端口。
以本例使用的3000端口为例,执行以下命令,添加防火墙例外端口3000。
firewall-cmd –zone=public –add-port=3000/tcp –permanent
如果回显信息如下说明防火墙关闭,可直接执行2.f
[root@ecs-centos7 ~]# firewall-cmd --zone=public --add-port=3000/tcp --permanent FirewallD is not running
如果回显信息如下说明防火墙开启且添加例外端口成功。
[root@ecs-centos7 ~]# firewall-cmd --zone=public --add-port=3000/tcp --permanent success
重新加载策略配置,使新配置生效。
firewall-cmd –reload
可以执行以下命令查看开启的所有端口。
firewall-cmd –list-ports
[root@ecs-centos7 ~]# firewall-cmd --list-ports 3000/tcp
执行以下命令,运行项目。
node ~/test.js
使用浏览器访问“http://弹性公网IP:3000”显示如下页面,说明Node.js测试项目部署成功。
图1 部署测试
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家