华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】
华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】
- 一、本次实践介绍
- 1.1 实践环境简介
- 1.3 本次实践完成目标
- 二、 相关服务介绍
- 2.1 华为云ECS云服务器介绍
- 2.2 Node.js介绍
- 三、环境准备工作
- 3.1 预置实验环境
- 3.2 查看预置环境信息
- 四、登录华为云
- 4.1 登录华为云
- 4.2 查看ECS状态
- 五、登录弹性云服务器
- 5.1 复制弹性公网IP地址
- 5.2 重置密码
- 5.3 连接云服务器
- 5.4 检查操作系统版本
- 5.5 查看系统内核版本
- 5.6 查询cpu信息
- 六、配置Node.js环境
- 6.1 下载Node.js安装包
- 6.2 解压文件
- 6.3 建立软连接
- 6.4 查看软件版本
- 七、安装NVM版本管理器
- 7.1 下载NVM安装包
- 7.2 解压安装包
- 7.3 配置变量
- 7.4 使配置文件生效
- 7.5 安装Node.js版本
- 7.6 查看node.js多个版本
- 八、部署测试项目
- 8.1 新建项目文件
- 8.2 编辑项目文件
- 8.3 运行项目
- 8.4 查看项目运行状态
- 8.5 更改安全组
- 8.6 访问验证
一、本次实践介绍
1.1 实践环境简介
1.本次实践环境使用华为KooLabs云实验平台。
2.本次实践基于基于华为云鲲鹏弹性云服务器。
3.在HCE系统上安装、部署、测试Node.js项目。
1.3 本次实践完成目标
-
熟悉华为云ECS服务器
-
熟练使用Linux系统环境
-
熟悉node.js的基本使用
-
在HCE系统上安装、部署、测试Node.js项目。
二、 相关服务介绍
2.1 华为云ECS云服务器介绍
弹性云服务器(Elastic Cloud Server, ECS)是一种云上可随时自助获取、可弹性伸缩的计算服务,可帮助您打造安全、可靠、灵活、高效的应用环境。

2.2 Node.js介绍
Node.js 是一个开源、跨平台的JavaScript运行环境,它使你可以在服务器端执行JavaScript代码。它采用事件驱动、非阻塞I/O模型,使得它能够高效地处理大量的并发请求。Node.js可用于构建各种类型的应用程序,包括Web服务器、API服务器、命令行工具、桌面应用等。它已经被广泛应用于各个领域,包括企业应用、社交媒体、物联网等。
三、环境准备工作
3.1 预置实验环境
1.开始实验之前请点击手册上方“预置实验环境”按钮。
2.预置实验环境需几分钟,成功后将会创建本实验所需的云资源(例如VPC、安全组或云服务器)。

3.2 查看预置环境信息
预置成功后ECS资源用户、密码信息可点击预置环境信息查看。

四、登录华为云
4.1 登录华为云
进入【实验操作桌面】,打开Chrome浏览器,首次可自动登录并进入华为云控制台页面。

登录完毕后,进入华为云控制台管理首页。

4.2 查看ECS状态
在华为云的首页服务列表中,点击“弹性云服务器ECS”,进入ECS云服务器管理页面。

在ECS管理页面,我们看到系统已经为我们创建了1台ECS弹性云服务器,状态处于正常运行状态。

五、登录弹性云服务器
5.1 复制弹性公网IP地址
在ECS云服务器列表,复制其弹性公网IP地址。

5.2 重置密码
由于预置的ECS云服务器密码太长太难输入,输入多次错误,为了避免浪费时间,直接重置密码,这里重置华为一般默认密码:Huawei@1234

5.3 连接云服务器
双击桌面的“Xfce终端”打开Terminal,执行以下命令登录云服务器。
LANG=en_us.UTF-8 ssh root@EIP

5.4 检查操作系统版本
检查当前操作系统版本
[root@ecs-01 ~]# cat /etc/os-release
NAME="Huawei Cloud EulerOS"
VERSION="2.0 (aarch64)"
ID="hce"
VERSION_ID="2.0"
PRETTY_NAME="Huawei Cloud EulerOS 2.0 (aarch64)"
ANSI_COLOR="0;31"
5.5 查看系统内核版本
查看系统内核版本
[root@ecs-01 ~]# uname -r
5.10.0-60.18.0.50.r1083_58.hce2.aarch64
5.6 查询cpu信息
查看鲲鹏cpu信息
[root@ecs-01 ~]# lscpu
Architecture: aarch64CPU op-mode(s): 64-bitByte Order: Little Endian
CPU(s): 2On-line CPU(s) list: 0,1
Vendor ID: HiSiliconBIOS Vendor ID: QEMUModel name: Kunpeng-920BIOS Model name: 1.0Model: 0Thread(s) per core: 1Core(s) per socket: 2Socket(s): 1Stepping: 0x1Frequency boost: disabledCPU max MHz: 2600.0000CPU min MHz: 2600.0000BogoMIPS: 200.00Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
Caches (sum of all): L1d: 128 KiB (2 instances)L1i: 128 KiB (2 instances)L2: 1 MiB (2 instances)L3: 32 MiB (1 instance)
NUMA: NUMA node(s): 1NUMA node0 CPU(s): 0,1
Vulnerabilities: Gather data sampling: Not affectedItlb multihit: Not affectedL1tf: Not affectedMds: Not affectedMeltdown: Not affectedMmio stale data: Not affectedRetbleed: Not affectedSpec rstack overflow: Not affectedSpec store bypass: VulnerableSpectre v1: Mitigation; __user pointer sanitizationSpectre v2: Not affectedSrbds: Not affectedTsx async abort: Not affected
六、配置Node.js环境
6.1 下载Node.js安装包
在Terminal中执行以下命令,下载Node.js安装包至云服务器。
wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/2434/node-v10.16.0-linux-arm64.tar.xz

6.2 解压文件
在Terminal中执行以下命令,将下载的安装包进行解压。
tar xvf node-v10.16.0-linux-arm64.tar.xz

6.3 建立软连接
在Terminal中执行以下命令,为node建立软连接。
ln -s /root/node-v10.16.0-linux-arm64/bin/node /usr/local/bin/node
在Terminal中执行以下命令,为npm建立软连接。
ln -s /root/node-v10.16.0-linux-arm64/bin/npm /usr/local/bin/npm
6.4 查看软件版本
检查安装node和npm版本
[root@ecs-01 ~]# node -v
v10.16.0
[root@ecs-01 ~]# npm -v
6.9.0
七、安装NVM版本管理器
7.1 下载NVM安装包
在Terminal中执行以下命令,下载NVM安装包至云服务器。
wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/2434/nvm-0.39.5.tar.gz

7.2 解压安装包
在Terminal中执行以下命令,解压安装包至指定目录。
mkdir -p /.nvm
tar -zxvf nvm-0.39.5.tar.gz -C /.nvm

7.3 配置变量
在Terminal中执行以下命令,使用vim修改配置文件。
vim ~/.bashrc
export NVM_DIR="/.nvm/nvm-0.39.5"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
7.4 使配置文件生效
在Terminal中执行以下命令,刷新配置文件。
source ~/.bashrc
7.5 安装Node.js版本
拷贝执行以下命令,安装多个Node.js版本。
nvm install v12.3.0

7.6 查看node.js多个版本
使用 nvm (Node Version Manager) 来查看已安装的多个 Node.js 版本,你可以运行以下命令:
[root@ecs-01 ~]# nvm list
-> v12.3.0system
default -> v12.3.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v12.3.0) (default)
stable -> 12.3 (-> v12.3.0) (default)
lts/* -> lts/iron (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.20.4 (-> N/A)
lts/iron -> v20.15.1 (-> N/A)
查看当前使用node版本
[root@ecs-01 ~]# nvm current
v12.3.0
八、部署测试项目
8.1 新建项目文件
新建项目文件example.js
cd ~ && touch example.js
8.2 编辑项目文件
将下方内容粘贴到项目文件中(该命令可以使任何用户访问的时候都可以返回一个welcome to Node.js)
vim example.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}/`);
});

8.3 运行项目
执行以下命令,运行项目。
node ~/example.js &

8.4 查看项目运行状态
拷贝执行以下命令查看是否在监听项目端口,返回的结果列表中包含端口3000,表明项目正常运行。
[root@ecs-01 ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1650/sshd: /usr/sbi
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 2609/node
tcp6 0 0 :::22 :::* LISTEN 1650/sshd: /usr/sbi
udp 0 0 0.0.0.0:68 0.0.0.0:* 982/dhclient
udp 0 0 127.0.0.1:323 0.0.0.0:* 788/chronyd
udp6 0 0 ::1:323 :::* 788/chronyd
[root@ecs-01 ~]#

8.5 更改安全组
在云服务器的安全组页面,在入方向上放行3000端口。

8.6 访问验证
在在实验桌面的浏览器中输入http://ECS实例公网IP地址:3000访问项目,如下图所示:

相关文章:
华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】
华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】 一、本次实践介绍1.1 实践环境简介1.3 本次实践完成目标 二、 相关服务介绍2.1 华为云ECS云服务器介绍2.2 Node.js介绍 三、环境准备工作3.1 预置实验环境3.2 查看预置环境信息 四、登录华为云4.1 登录华为云4.2 查…...
Vue 3 路由管理实战:构建多页面博客导航 - 掌握 Vue Router 实现 SPA 页面跳转
引言 欢迎再次回到 Vue 3 + 现代前端工程化 系列技术博客! 在昨天的第三篇博客中,我们深入探索了 Vue 3 响应式系统的进阶应用,通过构建简易购物车应用,熟练掌握了 watch 监听器和 computed 计算属性的运用。 今天,我们将开启 Vue 3 工程化实践的全新篇章,聚焦于构建单页…...
C语言整体梳理-基础篇-结构体
结构体详解 1.1结构体是什么? 结构体是一些值的集合,这些值成为成员变量,结构体的每个成员可以是不同类型的变量。 数组是相同类型的元素组成的集合,结构体可以是不同类型元素组成的集合。 1.2结构体的声明 1.2.1常规声明 s…...
MacBook 终端中使用 vim命令
在 MacBook 终端中使用 vim 编辑器时,以下是一些常用命令和操作指南: 1. 基本操作 启动 vim vim 文件名 # 打开或创建文件退出 vim 保存并退出: 按 Esc,然后输入 :wq,按 Enter。 不保存退出: 按 Esc&am…...
【 实战案例篇三】【某金融信息系统项目管理案例分析】
大家好,今天咱们来聊聊金融行业的信息系统项目管理。这个话题听起来可能有点专业,但别担心,我会尽量用大白话给大家讲清楚。金融行业的信息系统项目管理,说白了就是如何高效地管理那些复杂的IT项目,确保它们按时、按预算、按质量完成。咱们今天不仅会聊到一些理论,还会通…...
springboot、deepseek4j、bge-m3和milvus
1、pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …...
会话与会话管理:Cookie与Session的深度解析
一、什么是会话? 二、Cookie:客户端存储技术 1. Cookie的工作原理 2、在后端设置cookie 3、在前端设置cookie 三、浏览器开启了cookie禁用怎么办? 一、什么是会话? 会话(Session)是指一个用户与服务器之间…...
etcd部署硬件资源推荐
etcd部署硬件资源推荐 原文:https://etcd.io/docs/v3.5/op-guide/hardware/ etcd 通常在开发或测试环境中运行良好,即使资源有限;在笔记本电脑或廉价云服务器上开发时,使用 etcd 也很常见。然而,在生产环境中运行 etcd…...
MAVlink链路环境搭建并解决“ModuleNotFoundError: No module named ‘xxx’”问题
MAVlink链路常用于云台相机与飞控以及地面站之间的数据传输,搭建MAVlink链路环境需要安装Python、Future、MAVLink、pymavlink四样工具用于生成mavlink代码。 Python 直接从官网下载默认安装即可https://www.python.org/downloads/ 在电脑命令行进行安装验证&#x…...
ROS2软件调用架构和机制解析:Publisher创建
术语 DDS (Data Distribution Service): 用于实时系统的数据分发服务标准,是ROS 2底层通信的基础RMW (ROS Middleware): ROS中间件接口,提供与具体DDS实现无关的抽象APIQoS (Quality of Service): 服务质量策略,控制通信的可靠性、历史记录、…...
Android -- 使用Sharepreference保存List储存失败,原因是包含Bitmap,drawable等类型数据
1.报错信息如下: class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations 2.Bean类属性如下: data class AppInfoBean( val appName: String?, val appIcon: Drawable, val appPackage: String?,…...
java后端开发day23--面向对象进阶(四)--抽象类、接口、内部类
(以下内容全部来自上述课程) 1.抽象类 父类定义抽象方法后,子类的方法就必须重写,抽象方法在的类就是抽象类。 1.定义 抽象方法 将共性的行为(方法)抽取到父类之后。由于每一个子类执行的内容是不一样…...
Go - 泛型的使用
泛型的语法 泛型为Go语言添加了三个新的重要特性: 函数和类型的类型参数。将接口类型定义为类型集,包括没有方法的类型。类型推断,它允许在调用函数时在许多情况下省略类型参数。 类型参数 类型参数的使用 除了函数中支持类型参数列表外,…...
蓝桥杯刷题-dp-线性dp(守望者的逃离,摆花,线段)
[NOIP 2007 普及组] 守望者的逃离 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。 守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。 为了杀死守望者,尤迪安开始对这个荒岛…...
内容中台的企业CMS架构是什么?
企业CMS模块化架构 现代企业内容管理系统的核心在于模块化架构设计,通过解耦内容生产、存储、发布等环节构建灵活的技术栈。动态/静态发布引擎整合技术使系统既能处理实时更新的产品文档,也能生成高并发的营销落地页,配合版本控制机制确保内…...
算法题(81):询问学号
审题: 需要我们根据给出的n值确定录入数据个数,然后根据给出的数据存储学号。再根据m值确定需要输出的学号个数,然后根据数组内容输出学号 思路: 我们可以利用数组进行数据顺序存储,以及随机读取完成本题 由于学号最大为1e9&#…...
React antd的datePicker自定义,封装成组件
一、antd的datePicker自定义 需求:用户需要为日期选择器的每个日期单元格添加一个Tooltip,当鼠标悬停时显示日期、可兑换流量余额和本公会可兑流量。这些数据需要从接口获取。我需要结合之前的代码,确保Tooltip正确显示,并且数据…...
C++ AVL树详解(含模拟实现)
目录 AVL树的概念 AVL树节点的定义 AVL树的插入 AVL树的旋转(难点) AVL树的验证 AVL树的删除(本文不做具体的模拟实现) AVL树的性能 AVL树的模拟实现 AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索…...
Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言安装JDK 17创建Spring Boot 项目 方式1:网页在线生成方式2&#…...
Elasticsearch:过滤 HNSW 搜索,快速模式
作者:来自 Elastic Benjamin Trent 通过我们的 ACORN-1 算法实现,探索我们对 Apache Lucene 中的 HNSW 向量搜索所做的改进。 多年来,Apache Lucene 和 Elasticsearch 一直支持使用 kNN 查询的过滤搜索,允许用户检索符合指定元数据…...
TCP长连接与短连接
TCP长连接与短连接 TCP(传输控制协议)中的长连接和短连接是两种不同的连接管理方式,各有优缺点: 短连接 短连接是指客户端与服务器完成一次数据交换后就断开连接。下次需要通信时,再重新建立连接。 特点࿱…...
【AI测试学习】AnythingLLM+Ollama+DeepSeek部署私人知识库
1.搭建DeepSeek大语言模型 1.1Ollama大预言模型部署 Ollama简化了大型语言模型的运行,让每个人都能在本地轻松体验AI的强大,打开浏览器-下载Ollama-输入命令-搞定,这是本地部署大语言模型的全新方式。 这里我们借助Ollama大预言模型部署工具进行搭建 官网如下:Ollama …...
防流、节抖、重绘、回流原理,以及实现方法和区别
防流、节抖、重绘、回流原理,以及实现方法和区别,还有就是为什么会出现这种情况? 防抖(Debounce) 原理 防抖就像是你坐电梯,如果你一直不停地按开门按钮,电梯不会每次都开门,而是…...
通义灵码插件安装入门教学 - IDEA(安装篇)
在开发过程中,使用合适的工具和插件可以极大地提高我们的工作效率。今天,我们将详细介绍如何在 IntelliJ IDEA 中安装并配置通义灵码插件,这是一款旨在提升开发者效率的实用工具。无论你是新手还是有经验的开发者,本文都将为你提供…...
ES、OAS、ERP、电子政务、企业信息化(高软35)
系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统(ES)二、办公自动化系统(OAS)三、企业资源规划(ERP)四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…...
用大白话解释缓存Redis +MongoDB是什么有什么用怎么用
Redis和MongoDB是什么? Redis:像你家的“小冰箱”,专门存高频使用的食物(数据)。它是基于内存的键值数据库,读写速度极快(每秒超10万次操作)。比如你每次打开手机App,用…...
华为数通Datacom认证体系详解:从HCIA到HCIE的进阶路径
华为数通Datacom(Data Communication)课程是华为认证体系中的核心方向之一,聚焦企业网络通信与数据通信技术,适合从事网络规划、部署和运维的人员。 一、数通Datacom课程体系 华为数通Datacom认证分为 三个级别,逐级递…...
PyTorch 的 nn.NLLLoss:负对数似然损失全解析
PyTorch 的 nn.NLLLoss:负对数似然损失全解析 在 PyTorch 的损失函数家族中,nn.NLLLoss(Negative Log Likelihood Loss,负对数似然损失)是一个不太起眼但非常重要的成员。它经常跟 LogSoftmax 搭配出现,尤…...
《数据安全架构设计与实战》的目录
《数据安全架构设计与实战》的目录如下1: 第一部分 安全架构基础 第 1 章 架构第 2 章 安全架构 2.1 什么是安全2.2 为什么使用 “数据安全” 这个术语2.3 什么是安全架构2.4 安全架构 5A 方法论2.5 安全架构 5A 与 CIA 的关系 第二部分 产品安全架构 …...
python-leetcode-删除并获得点数
740. 删除并获得点数 - 力扣(LeetCode) 解法 1:动态规划(O(n) 时间,O(n) 空间) class Solution:def deleteAndEarn(self, nums: List[int]) -> int:if not nums:return 0# 统计每个数的贡献points Cou…...
