用鲲鹏弹性云服务器完成部署Node.js【玩转华为云】
本文主要内容有
- 一 虚拟私有云VPC能干啥
- 二 先把准备工作做好
- 三 用NVM管理器安Node.js多版本
- 四 部署并测试下项目
一 🎨 虚拟私有云VPC能干啥
1.1 搞清定义
虚拟私有云,目的是给云服务器、云容器、云数据库等云上资源构建隔离、私密的虚拟网络环境。VPC丰富的功能帮助您灵活管理云上网络,包括创建子网、设置安全组和网络ACL、管理路由表、申请弹性公网IP和带宽等很多。您还可以通过云专线、VPN等服务把VPC与传统的数据中心互联互通,这样能灵活整合资源,来构建混合云网络;
或者说它用了网络虚拟化技术,通过链路冗余,分布式网关集群,多AZ部署等多种技术,保障网络的安全、稳定以及高可用;
1.2 虚拟私有云结构是啥
组成部分
每个虚拟私有云VPC由一个私网网段、路由表和至少一个子网组成
- 私网网段:用户在创建虚拟私有云VPC时,需指定虚拟私有云VPC使用的私网网段。如果当前虚拟私有云VPC支持的网段有10.0.0.0/8~24、172.16.0.0/12~24和192.168.0.0/16~24;
- 子网:云资源(例如云服务器、云数据库等)必须部署在子网内,虚拟私有云VPC创建完成后,您需要为虚拟私有云VPC划分一个或多个子网,子网网段必须在私网网段内。更多信息请参考子网;
- 路由表:在创建虚拟私有云VPC时,系统会自动生成默认路由表,默认路由表的作用是保证了同一个虚拟私有云VPC下的所有子网互通。当默认路由表中的路由策略无法满足应用(比如未绑定弹性公网IP的云服务器需要访问外网)时,您可以通过创建自定义路由表来解决。更多信息请参考VPC内自定义路由示例和VPC外自定义路由示例;
安全
安全组与网络ACL是用来保障虚拟私有云VPC内部署的云资源的安全;安全组可以想象类似于虚拟防火墙,为同一个VPC内具有相同安全保护需求并相互信任的云资源提供访问策略,更多信息请看安全组简介;您可以为具有相同网络流量控制的子网关联同一个网络ACL,通过设置出方向和入方向规则,对进出子网的流量进行精确控制,更多信息请看网络ACL简介;
VPC连接
华为云提供了多种VPC连接方案,以满足用户不同场景下的诉求。具体应用场景及连接方案请见应用场景
- 通过VPC对等连接功能,实现同一区域内不同VPC下的私网IP互通
- 通过EIP或NAT网关,使得VPC内的云服务器可以与公网Internet互通
- 通过虚拟专用网络VPN、云连接、云专线及企业交换机将VPC和您的数据中心连通
- ......
1.3 有啥优势呢
灵活配置
可自定义虚拟私有网络,能按需划分子网,并配置IP地址段、DHCP、路由表等服务,也支持跨可用区部署弹性云服务器;
安全可靠
VPC之间通过隧道技术进行100%逻辑隔离,并且不同VPC之间默认不能通信,网络ACL对子网进行防护,安全组对弹性云服务器进行防护,多重防护您的网络更好
互联互通
一般情况下,VPC与公网是不能通信访问的,我们提供了弹性公网IP、弹性负载均衡、NAT网关、虚拟专用网络、云专线等多种方式连接公网
默认情况下,两个VPC之间也是不能通信访问的,我们提供对等连接的方式,使用私有IP地址在两个VPC之间进行通信
对于云上和云下网络二层互通问题,企业交换机支持二层连接网关功能,允许您在不改变子网、IP规划的前提下将数据中心或私有云主机业务部分迁移上云。
提供多种连接选择,满足企业云上多业务需求,让您轻松部署企业应用,降低企业IT运维成本;
能高速访问
用全动态BGP协议接入多个运营商,并可支持20多条线路。可以根据设定的寻路协议实时自动故障切换,来保证网络稳定,网络时延低,并且云上业务访问更流畅
优势对比下
虚拟私有云相比传统IDC的优势如下
1.4 咋访问虚拟私有云
- 管理控制台方式
管理控制台是网页形式的,您可以使用直观的界面进行相应的操作。登录管理控制台,从主页选择“虚拟私有云”。
- API方式
二 🥩 先把准备工作做好
2.1 登录弹性云服务器
①双击桌面的“Xfce终端”打开Terminal,输入以下命令登云服务器,请用弹性云服务器ECS的公网IP来换命令中的【EIP】;
2.2 那什么是弹性云服务器?
是由CPU、内存、镜像、云硬盘组成的一种可随时获取、弹性可扩展的计算服务器,同时它结合虚拟私有云、虚拟防火墙、数据多副本保存等能力,为您打造一个高效、可靠、安全的计算环境,确保您的服务持久稳定运行,一旦创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器;
登录弹性云服务器方式有哪些?
“密钥对”登录:方式创建的弹性云服务器安全性更高,建议选择“密钥对”方式。如果您习惯使用“密码”方式,请增强密码的复杂度,保证密码符合要求,防止恶意攻击。 “密码”登录:指使用设置初始密码方式作为弹性云服务器的鉴权方式,此时,您可以通过用户名密码方式登录弹性云服务器,Linux操作系统时为root用户的初始密码,Windows操作系统时为Administrator用户的初始密码;
LANG=en_us.UTF-8 ssh root@EIP
提醒下云服务器的弹性公网IP地址,可通过鼠标移动到云桌面浏览器页面中左侧菜单栏,点“服务列表”->“计算”->“弹性云服务器ECS”进入服务器列表,进行查看并复制下
②接受秘钥输入“yes”,回车;
③输入密码:使用预置环境信息中云服务器名称为ecs-01的用户密码
成功登录云服务器之后如下
三 😍 用NVM管理器安Node.js多版本
3.1 下载Node.js安装包
下载Node.js安装包,在Terminal中输入执行以下命令,就能下
什么是Node.js?
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。 Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用,它用事件驱动,非阻塞I/O模型而得以轻量与高效,这样非常适合在分布式设备上运行数据密集型的实时应用;
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-nodejs/node-v10.16.0-linux-arm64.tar.xz
如下所示,进度显示为100%,它表示完成了下载
3.2 解压文件
在Terminal中输入执行以下命令,把下载的安装包进行解压出来
tar xvf node-v10.16.0-linux-arm64.tar.xz
3.3 进行解压
出现如下图信息即表示解压完成
3.4 建立软连接
为node建立软连接,在Terminal中输入执行以下命令
ln -s /root/node-v10.16.0-linux-arm64/bin/node /usr/local/bin/node
为npm建立软连接,在Terminal中输入执行以下命令
ln -s /root/node-v10.16.0-linux-arm64/bin/npm /usr/local/bin/npm
3.5 查看软件版本
查看node版本,在Terminal中输入执行以下命令
node -v
并查看npm版本,在Terminal中输入执行以下命令
npm -v
出现以下信息即表示命令执行完成,如下
至此,Node.js环境已安装完毕,软件默认安装在/root/node-v10.16.0-linux-arm64/目录
3.6 下载NVM版本管理器
在Terminal中输入执行以下命令,用git把源码克隆到本地的~/.nvm目录下,并检查最新版本
git clone https://codehub.devcloud.cn-north-4.huaweicloud.com/Demo01087/nvm.git ~/.nvm && cd ~/.nvm
出现以下信息表明下载的git软件无误,如下
3.7 激活NVM版本管理器
在Terminal中输入执行以下命令,激活NVM,并将其追加至profile文件下
echo ". ~/.nvm/nvm.sh" >> /etc/profile
3.8 配置NVM版本管理器
在nvm/nvm.sh配置中,执行如下
vim nvm.sh
文件信息如下
3.8 添加描述规则
在nvm.sh文件中搜索下面描述文件
拷贝如下命令,在Terminal中任意位置单击鼠标右键选择“Paste”,按键盘回车(ENTER)执行搜索就行
/nvm_get_arch
搜索内容如下
3.9 输入新的命令规则
在搜索到的位置,点击键盘“i”进入输入模式,将光标移动至i*86行的最结尾,回车,输入4个空格。拷贝如下代码,单击鼠标右键选择“Paste”粘贴
aarch64) NVM_ARCH="arm64" ;;
输入完成如下图所示:
点击键盘“ESC”退出输入模式,输入以下命令后回车保存
:wq
3.10 刷新环境变量
执行以下命令,令nvm环境重新生效
source /etc/profile
3.11 安装Node.js版本
拷贝执行以下命令,安装多个Node.js版本
nvm install v12.3.0
出现以下信息表示安装成功,版本为v12.3.0,如下
3.12 新建项目
拷贝执行以下命令,新建项目文件example.js
cd ~ && touch example.js
四 💡 部署并测试下项目
4.1 先打开项目文件
拷贝执行以下命令,用vim编辑器打开项目文件example.js
vim example.js
打开项目文件是一个空文件如下
4.2 然后制作js文件Demo
点击键盘“i”键,然后进入编辑模式,把下方内容粘贴到项目文件中(该命令可以使任何用户访问的时候都可以返回一个welcome to Node.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('Welcome to Node.js\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
在打开的example.js项目文件界面单击鼠标右键,选择“粘贴”,粘贴成功界面如下【粘贴之前请务必键入“i”进入编辑模式,确保代码的完整性】
:wq
4.4 运行项目
拷贝执行以下命令,运行项目。(运行后再次回车)
node ~/example.js &
执行成功界面如下
4.5 查看项目运行状态
拷贝执行以下命令查看是否在监听项目端口,返回的结果列表中包含端口3000,表明项目正常运行
netstat -tpln
如下
4.6 更改安全组
然后切换回浏览器,进入云服务器控制台(“控制台”->“服务列表”->“计算”->“弹性云服务器ECS”),点击左侧栏最下方“安全组”,如下
安全组为实验开始时“预置实验环境”所创建的安全组(名称是系统分配的华为云实验账号名)如下
点击进入详情页,选择“入方向规则”,点击“添加规则”如下
① 优先级:1
② 策略:允许
③ 协议端口:TCP 3000
其他配置默认,然后点击“确定”,配置如下
4.7 Node.js文件Demo验证
在在实验桌面的浏览器中输入http://ECS实例公网IP地址:3000访问项目,如下
至此,Node.js安装成功
- 点赞
- 收藏
- 关注作者
评论(0)