【阿里云】云服务器ECS运行node服务

本文介绍如何在(CentOS 7.9 64位)操作系统的ECS实例上,安装Node.js并部署测试项目。

使用工具:FinalShell4.3.10

目录

步骤一:部署Node.js环境

1.远程连接已创建的ECS实例。

 2.部署Node.js环境。

a.安装分布式版本管理系统Git。

b.使用Git将NVM的源码克隆到本地的~/.nvm目录下,并检查最新版本。

c.依次运行以下命令,配置NVM的环境变量。

d.运行以下命令,修改npm镜像源为阿里云镜像,以加快Node.js下载速度。

e.运行以下命令,查看Node.js版本。

f.安装多个Node.js版本。

        i.安装v14.0.0版本。

        ii.安装v16.0.0版本。

g.查看已安装的Node.js版本。

步骤二:部署测试项目

1.依次运行以下命令,创建测试项目文件example.js。

a.返回/root路径。

b.创建测试项目文件example.js。

2.修改项目文件example.js。

a.运行以下命令打开example.js。

b.按 i 键进入编辑模式,并将以下内容添加至example.js文件中。

c.添加完成后,按 Esc 键退出编辑模式,并输入:wq后按Enter键,保存退出文件。

3.运行项目并得到项目的端口号。

4.运行以下命令,列入系统已在监听的端口信息。

5.在ECS实例的安全组中,添加入方向规则,放行项目中配置的端口号。

6.在本地Windows主机或其他任一具有公网访问能力的Windows主机中,打开浏览器并访问http://:<项目端口号>。实例公网ip地址>


步骤一:部署Node.js环境

1.远程连接已创建的ECS实例。

a.点击FinalShell ,新建连接。输入ssh账号密码和公网ip。端口默认22。

连接主机...
连接主机成功
Last login: Tue May 14 11:09:03 2024 from xxx.x.x.xxx

Welcome to Alibaba Cloud Elastic Compute Service !

 2.部署Node.js环境。

使用NVM安装多个Node.js版本

NVM(Node Version Manager)是Node.js的版本管理软件,使您可以轻松在Node.js各个版本间进行切换。适用于长期做node开发的人员或有快速更新node版本、快速切换node版本的场景。

具体操作步骤如下:

a.安装分布式版本管理系统Git。

yum install git -y

b.使用Git将NVM的源码克隆到本地的~/.nvm目录下,并检查最新版本。

❓ 说明  由于网络原因,可能会出现无法克隆的问题,建议您多尝试几次。

git clone https://gitee.com/mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

c.依次运行以下命令,配置NVM的环境变量。

echo ". ~/.nvm/nvm.sh" >> /etc/profile
source /etc/profile

d.运行以下命令,修改npm镜像源为阿里云镜像,以加快Node.js下载速度。

export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node

e.运行以下命令,查看Node.js版本。

nvm list-remote

f.安装多个Node.js版本。

        i.安装v14.0.0版本。
nvm install v14.0.0
        ii.安装v16.0.0版本。
nvm install v16.0.0

g.查看已安装的Node.js版本。

nvm ls

返回结果如下所示,表示当前已安装v14.0.0、v16.0.0两个版本,正在使用的是v16.0.0版本。

        v14.0.0
->      v16.0.0
default -> v14.0.0
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.0.0) (default)
stable -> 16.0 (-> v16.0.0) (default)
lts/* -> lts/hydrogen (-> 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.1 (-> N/A)
lts/hydrogen -> v18.16.1 (-> N/A)

说明 您可以运行nvm use <版本号>命令切换Node.js的版本。例如,切换至Node.js v14.0.0版本的命令为nvm use v14.0.0。

高版本会出现不兼容情况,请根据实际情况安装和切换。

步骤二:部署测试项目

1.依次运行以下命令,创建测试项目文件example.js。

a.返回/root路径。

cd

b.创建测试项目文件example.js。

touch example.js

2.修改项目文件example.js。

a.运行以下命令打开example.js。

vim example.js

b.按 i 键进入编辑模式,并将以下内容添加至example.js文件中。

本示例中,项目占用的端口号为3000、输出的内容为Hello World。您需要根据实际的业务需求自行配置项目内容(res.end)、端口号(const port)等信息。

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\n');
}); 

server.listen(port, hostname, () => { 
    console.log(`Server running at http://${hostname}:${port}/`);
});

c.添加完成后,按 Esc 键退出编辑模式,并输入:wq后按Enter键,保存退出文件。

3.运行项目并得到项目的端口号。

node ~/example.js &

4.运行以下命令,列入系统已在监听的端口信息。

netstat -tpln

本示例中,返回的结果列表中包含端口3000,表明项目正常运行。

5.在ECS实例的安全组中,添加入方向规则,放行项目中配置的端口号。

本示例中,项目端口号为3000。

6.在本地Windows主机或其他任一具有公网访问能力的Windows主机中,打开浏览器并访问http://<ECS实例公网IP地址>:<项目端口号>。

本示例中,<项目端口号>为3000。访问到的测试项目如下图所示:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity射击游戏开发教程:(18)添加弹药计数+补充弹药

添加简单的弹药计数 我将讨论如何向游戏中添加简单的弹药计数。这将包括在 HUD 中添加弹药计数器,当弹药达到 0 时,文本会将颜色更改为红色以提醒玩家。另外,当弹药数为0时,玩家将无法再射击。让我们深入了解吧! 在播放器脚本中我们需要添加一些变量。我们将创建两个公共整…

【智能算法】清道夫优化算法(CFO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;W Zhang受到清道夫自然行为启发&#xff0c;提出了清道夫优化算法&#xff08;Cleaner Fish Optimization Algorithm, CFO&#xff09;。 2.算法原理 2.1算法思想 CF…

线性系统(一)

线性系统&#xff08;一&#xff09; 1.什么是线性系统2.高斯消元法3.高斯-约旦消元法4.线性方程组解的结构 链接: 线性系统&#xff08;二&#xff09; 1.什么是线性系统 线性&#xff1a;未知数只能是一次方项 非线性: 同时&#xff0c;读者也可以通过作图来更直观地感受&…

【保姆级】生成式网络模型基础知识(图像合成/语音合成/GPT)

生成式模型基础知识 初步接触生成任务 生成任务&#xff0c;顾名思义就是要去生成一个东西&#xff0c;比如生成图片/音频/文字等等。 大家接触最多比如chatGPT、stable diffusion、还有一些语音合成相关的东西。 那么问题来了&#xff0c;具体生成步骤是什么样的&#xff…

iOS plist文件增删改查

一. plist简介 plist文件&#xff0c;即属性列表文件&#xff0c;全名是Property List&#xff0c;这种文件的扩展名为.plist&#xff0c;因此&#xff0c;通常被叫做plist文件。它是一种用来存储串行化后的对象的文件&#xff0c;在iOS开发中通常用来存储用户设置&#xff0c…

【leetcode面试经典150题】-26. 删除有序数组中的重复项

26. 删除有序数组中的重复项 1 题目介绍1 个人解题思路1.1 解题代码1.2 思路解析 2、分析官方题解2.1 快慢双指针 1 题目介绍 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新…

Google:站长移除无效网址

当您的网址不需要呈现在Google站长中时&#xff0c;您可以在站长工具中移除网址 操作步骤&#xff1a;登录Google站长&#xff0c;绑定网站完成后&#xff0c;点击左侧删除 >> 输入网址 如果遇到一些网址&#xff0c;可以找寻网址间的规律&#xff0c;比如说&#xff0…

幻兽帕鲁Palworld服务器手动+docker部署方法+备份迁移

目录 帕鲁部署官方文档帕鲁手动安装法手动安装steamcmd通过steamcmd安装帕鲁后端 docker容器一键部署幻兽帕鲁绿联云NAS机器部署幻兽帕鲁客户端连接附录1&#xff1a;PalServer.sh的启动项附录2&#xff1a;配置文件游戏存档保存和迁移 关于阿里云计算巢 帕鲁部署官方文档 htt…

TikTok Shop认知课 打通TK小店全流程

资料 001-先导课.mp4 002-如何用思维导图工具做课程笔记.mp4 003-TTS入驻模式.mp4 004-如何获取店铺.mp4 005-TTS店铺注册全流程,mp4 006-店铺整体运营思路.mp4 007-运营的几个误区.mp4 008-新店起店准备工作,mp4 009-规店铺风控注意事项,mp4 010-店铺基础设置之店铺…

SpringCloudAlibaba5.2sentinel配置流控

概述 简介 监控应用流量的QPS或并发线程数&#xff0c;当达到指定的阈值时对流量进行控制 规则 1.资源名&#xff1a;请求路径 2.针对来源&#xff1a;配置该规则微服务&#xff0c;一般填写调用方的微服务名称&#xff0c;多个用","分割 3.阈值类型&#xff1a;二…

C++ | Leetcode C++题解之第92题反转链表II

题目&#xff1a; 题解&#xff1a; class Solution { public:ListNode *reverseBetween(ListNode *head, int left, int right) {// 设置 dummyNode 是这一类问题的一般做法ListNode *dummyNode new ListNode(-1);dummyNode->next head;ListNode *pre dummyNode;for (i…

24HN逆向部分wp

24H&N逆向部分wp 菜鸡新手师傅wp&#xff0c;Re 5/9&#xff0c;记录一下qaq&#xff08;好久没写博客了&#xff0c;水一篇hh&#xff09; 最喜欢的逆向题 64位&#xff0c;进主函数之后直接看&#xff0c;要求输入第5位为i&#xff0c;然后后面依次相等&#xff0c;长…

springboot005学生心理咨询评估系统

springboot005学生心理咨询评估系统 亲测完美运行带论文&#xff1a;获取源码&#xff0c;私信评论或者v:niliuapp 运行视频 包含的文件列表&#xff08;含论文&#xff09; 数据库脚本&#xff1a;db.sql其他文件&#xff1a;ppt.ppt论文&#xff1a;开题.doc论文&#xf…

WebRTC实时音视频通话之语音通话设计与实践

一、背景 在移动互联网流量时代&#xff0c;很多业务场景都有音视频通信的需求&#xff0c;比如IM场景&#xff0c;除了文字交流还需要音视频通话进行实时交互。为了帮助58、赶集、安居客等业务线更好的为用户提供服务&#xff0c;节约沟通成本&#xff0c;提升效率&#xff0…

月薪3万,沉迷“薅羊毛”

在网购江湖中&#xff0c;蟹老板是一位拥有十年经验的资深“羊毛党”。 他不仅是位精明的数学家&#xff0c;更是一位高效的“生产线”工人&#xff0c;专注于各大网购平台的优惠机制。每逢618大促&#xff0c;他总能凭借超凡的洞察力和手速&#xff0c;轻松斩获丰厚的“羊毛”…

C语言 | Leetcode C语言题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; int numDecodings(char* s) {int n strlen(s);// a f[i-2], b f[i-1], c f[i]int a 0, b 1, c;for (int i 1; i < n; i) {c 0;if (s[i - 1] ! 0) {c b;}if (i > 1 && s[i - 2] ! 0 && ((s[i - 2] - 0) * 10…

Ubuntu22 下配置 Qt5 环境

1. Qt 简介 Qt5 中的新功能&#xff0c;可以看到各个版本的情况Whats New in Qt 5 | Qt 5.15 Qt 源文件网址Index of /archive/qt 2. 安装 Qt Creator cd 到安装包所在目录&#xff0c;进行软件安装。赋予可执行权限&#xff0c;加上 sudo 权限进入安装&#xff0c;这样会安…

Python专题:十六、异常处理(2)

异常的预判和防护 import randomnum random.randint(1, 100) # 获得一个随机数 is_done False # 是否猜中的标记 count 0 # 玩家猜了几次while not is_done:guess int(input(请输入一个[1, 100]的整数&#xff1a;))if guess num:is_done Trueelif guess > num:pr…

公司邮箱是什么?公司邮箱和个人邮箱有什么不同?

公司邮箱是企业用来收发邮件的专业版电子邮箱&#xff0c;不同于个人邮箱的简单功能和有限的存储空间&#xff0c;公司邮箱的功能更加丰富&#xff0c;能够满足企业的日常办公和协作需求。本文将为您详细讲解公司邮箱和个人邮箱的区别&#xff0c;以供您选择更适合自己的邮箱类…

哈希表法快速求解最长连续序列 | 力扣128题详细解析

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…