手把手教你基于华为云鲲鹏弹性云服务器部署Node.js环境

news/2024/11/15 11:54:35/文章来源:https://www.cnblogs.com/huaweiyun/p/18307380

本文分享自华为云社区《华为云之使用鲲鹏弹性云服务器部署Node.js环境【玩转华为云】》,作者:江湖有缘。

一、本次实践介绍

1.1 实践环境简介

本次实践环境使用华为KooLabs云实验平台。

本次实践基于基于华为云鲲鹏弹性云服务器。

在HCE系统上安装、部署、测试Node.js项目。

1.3 本次实践完成目标

  • 熟悉华为云ECS服务器

  • 熟练使用Linux系统环境

  • 熟悉node.js的基本使用

  • 在HCE系统上安装、部署、测试Node.js项目。

二、 相关服务介绍

2.1 华为云ECS云服务器介绍

弹性云服务器(Elastic Cloud Server, ECS)是一种云上可随时自助获取、可弹性伸缩的计算服务,可帮助您打造安全、可靠、灵活、高效的应用环境。

 

image.png

 

2.2 Node.js介绍

Node.js 是一个开源、跨平台的JavaScript运行环境,它使你可以在服务器端执行JavaScript代码。它采用事件驱动、非阻塞I/O模型,使得它能够高效地处理大量的并发请求。Node.js可用于构建各种类型的应用程序,包括Web服务器、API服务器、命令行工具、桌面应用等。它已经被广泛应用于各个领域,包括企业应用、社交媒体、物联网等。

三、环境准备工作

3.1 预置实验环境

开始实验之前请点击手册上方“预置实验环境”按钮。

预置实验环境需几分钟,成功后将会创建本实验所需的云资源(例如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安装包至云服务器。

 

在这里插入图片描述

 

7.2 解压安装包

在Terminal中执行以下命令,解压安装包至指定目录。

mkdir -p /.nvmtar -zxvf nvm-0.39.5.tar.gz -C /.nvm

 

在这里插入图片描述

 

7.3 配置变量

在Terminal中执行以下命令,使用vim修改配置文件。

vim ~/.bashrcexport 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.jsconst 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访问项目,如下图所示:

 

在这里插入图片描述

 

点击关注,第一时间了解华为云新鲜技术~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/745232.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LVM逻辑卷方式管理磁盘和分区

LVM (逻辑卷管理)LVM,是Logical Volume Manager的缩写,中文意思是逻辑卷管理,它是linux 下对磁盘分区进行管理的一种机制,LVM是建立在磁盘分区和文件系统之间的一个逻辑层,管理员利用LVM可以在磁盘不用重新分区的情况下动态的调整分区的大小。如果系统新增了-块硬盘,通过…

[N1CTF 2018]eating_cms 1

信息收集,文件上传,rce,代码审计打开之后是一个登录页面,同时他的url是login,呢么第一反应应该是看看有没有register.php发现是有的,..但是admin是注册不了的,呢么我们先随机注册一个尝试看看能不能更改权限,登陆上之后发现是没有session的也就是目前没办法切换admin账号…

超级炫酷的终端神器 eDEX-UI

eDEX-UI,不仅是一款全屏幕、跨平台的终端模拟器和系统监视器,更是一件被封存的艺术品,让你尽情沉浸于科幻般的装逼幻想之中。它的界面设计独特,仿佛来自未来世界,让你仿佛置身于科幻电影中。 eDEX-UI主要亮点:科幻感的外观 跨平台 自定义主题选项 支持多个终端标签 Windo…

Axure引用Antv-G2

本文分为5个模块:引用模版、说明---引用模版、说明---antv-g2图表示例代码、axure引用步骤、示例代码 引用模版: javascript:var script = document.createElement(script);script.type = "text/javascript";script.src ="https://unpkg.com/@antv/g2/dist/g2…

双非一本,裁员两个月,进 WLB 外企,涨幅 50%

大家好,我是R哥。 今天和大家分享一个特别有成就感的面试辅导案例,这个小兄弟的个人情况如下:双非一本 刚毕业不久 校招进了家全球外包 被裁员空窗两个月 没有社招经验我叫他「小马」好了,小马通过我们的面试辅导,成功拿到某知名外企、数字马力、Bamboo 等多个知名企业 Of…

移动端适配的基础概念

一、英寸 一般用英寸描述屏幕的物理大小。如苹果SE 4英寸,苹果XS 6.5英寸,电脑显示器的22英寸 上面的尺寸都是屏幕对角线长度。英寸和厘米的换算:1英寸 = 2.54 厘米二、分辨率 2.1 像素 像素即一个方块,具有特定的位置和颜色。像素可以作为图片和电子屏幕最小组成单元通常我…

Linux 提权-密码搜寻

本文通过 Google 翻译 Password Hunting – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 密码搜寻 – 文件名和文件内容1.1 寻找有趣的文件名 1.2 寻找有趣的字符串2 密码搜寻 – Web 文件/Con…

Bk1_Ch10_01

Chapter 10 解剖一幅图 Book_1《编程不难》 | 鸢尾花书:从加减乘除到机器学习 代码来源:https://matplotlib.org/stable/gallery/showcase/anatomy.html import matplotlib.pyplot as plt import numpy as npfrom matplotlib.patches import Circle from matplotlib.patheffe…

java八股复习指南-多线程篇

多线程 线程的实现 在 Java 中,实现多线程的主要有以下四种继承 Thread 类,重写 run() 方法; 实现 Runnable 接口,实现 run() 方法,并将 Runnable 实现类的实例作为 Thread 构造函数的参数 target; 实现 Callable 接口,实现 call() 方法,然后通过 FutureTask 包装器来创…

W外链创建抖音私信卡片教程,私信卡片跳转微信工具

W外链地址wai.cn 在数字化时代的浪潮中,私域流量的价值愈发凸显,成为企业获取用户、建立品牌忠诚度、提升转化率的关键手段。抖音,作为当下最热门的短视频社交平台之一,其用户基数庞大、互动性强,为企业私域引流提供了绝佳的舞台。而抖音私信卡片,正是私域引流中的一把利…

Gradle更换阿里云镜像源

1、下载Gradle 官网:https://gradle.org/releases/ 2、配置Gradle环境变量 3、安装目录下找到init.d文件夹 再该文件夹中创建init.gradle文件,编写一下脚本替换阿里云镜像// 阿里云仓库和源仓库地址对比:https://developer.aliyun.com/mvn/guidegradle.projectsLoaded {root…

CANXL协议解读系列 | (2)一文读懂ISO 11898-2:2024 CANXL物理层

伴随着ISO 11898-2:2024版本的更新,第三代CAN总线通信CAN XL技术迎来了它的序幕。 2024年3月22日, ISO 推出11898-2:2024版本,标志着CAN总线收发器的最高速率由CANFD行业认可的8Mbit/s提速到最高20Mbit/s(2024年5月24日ISO 11898-1 2024已发表)。20Mbit/s的传输带…