部署Node.js环境

更新时间:
一键部署
我的部署

本文档简述了在阿里云ECS实例上手动部署Node.js环境的基本步骤和注意事项,旨在帮助开发者快速、顺利地搭建Node.js开发或运行环境。

前提条件

重要

Alibaba Cloud Linux 2和CentOS 7.x系统仅支持部署Node.js 17.x及以下版本,不支持更高版本的Node.js。

部署Node.js环境时,已有ECS实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见弹性公网IP

  • 操作系统必须满足Alibaba Cloud Linux 3/2、CentOS 7.x、Ubuntu 18.x及以上版本、Debian 10.x及以上版本、Windows。

  • 配置实例的安全组入方向规则,确保22(SSH)和3389(RDP)端口的安全放行,以支持远程登录和远程桌面连接。为了增强安全性,建议仅放行需要访问的IP网段,避免将访问权限授予所有IPv4地址(即0.0.0.0/0)。具体操作,请参见添加安全组规则

Linux系统

在Linux上部署Node.js,本文选择使用NVM(Node Version Manager)。与包管理器安装相比,NVM不受系统仓库版本限制,确保获取最新Node.js版本;与下载预编译二进制包相比,NVM省去了繁琐的环境变量配置;与从源代码编译安装相比,NVM大大缩短了安装时间,且对用户编译技能无要求。更重要的是,NVM支持多版本管理,方便切换,且安装的Node.js位于用户家目录,无需sudo权限,有效降低了安全风险。

安装Node.js

  1. 远程连接到需要安装Node.js的实例。具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

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

    • Alibaba Cloud Linux 3/2、CentOS 7.x

      sudo yum install git -y
    • Ubuntu 18.x及以上版本&Debian 10.x及以上版本

      sudo apt update
      sudo apt install git -y
  3. 使用Git将NVM的源码克隆到本地的~/.nvm目录下,并检查最新版本。

    说明

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

    git clone https://gitee.com/mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
  4. 依次运行以下命令,配置NVM的环境变量。

    sudo sh -c 'echo ". ~/.nvm/nvm.sh" >> /etc/profile'
    source /etc/profile
  5. 运行以下命令,修改npm镜像源为阿里云镜像,以加快Node.js下载速度。

    export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
  6. 运行以下命令,查看Node.js版本。

    nvm list-remote
  7. 安装多个Node.js版本。

    重要

    Alibaba Cloud Linux 2 和 CentOS 7.x 仅支持 Node.js 17.x 及以下版本,请将以下命令中的版本修改为 17.x 及以下版本,例如您需要安装 v17.9.1,请执行nvm install v17.9.1

    1. 安装v23.3.0版本。

      nvm install v23.3.0
    2. 安装v22.11.0版本。

      nvm install v22.11.0
  8. 查看已安装的Node.js版本。

    nvm ls

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

    image

    说明

    您可以使用nvm use <版本号>命令切换Node.js的版本。例如,切换至Node.js v23.3.0版本的命令为nvm use v23.3.0

部署测试项目

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

    1. 返回用户家目录。

      cd
    2. 创建测试项目文件example.js

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

    1. 运行以下命令打开example.js

      vim example.js
    2. 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}/`);
      });
    3. 添加完成后,按Esc键退出编辑模式,并输入:wq后按Enter键,保存退出文件。

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

    node ~/example.js &
  4. 运行以下命令,列出系统已在监听的端口信息。

    netstat -tpln

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

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

    本示例中,项目端口号为3000。添加安全组规则的具体操作,请参见添加安全组规则

    image

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

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

Windows系统

在Windows系统上,Node.js的部署可以通过访问官方网站下载相应的安装包。

安装Node.js

  1. 远程连接到需要安装Node.js的实例。具体操作,请参见使用Workbench工具以RDP协议登录Windows实例

  2. 访问Node.js官网,单击菜单栏Download。

    image

  3. 下载安装包。

    下载页面提供了多种不同的安装方式,每种方式适合不同的需求和偏好,本示例选择Prebuilt Installer。

    说明

    版本选择带有LTS的,表示经过长期测试,相对稳定的版本。

    安装方式

    安装方式介绍

    Package Manager

    使用操作系统的包管理器(如npm、apt、yum、brew等)来安装Node.js。

    Prebuilt Installer

    为特定操作系统(如Windows的.msi文件,macOS的.pkg文件)预先编译好的安装包。这些安装包包含了Node.js运行时和npm,通常也包括了一些必要的依赖项。

    Prebuilt Binaries

    为各种平台编译好的Node.js可执行文件,没有安装向导,且用户需要手动解压并配置环境变量。

    Source Code

    源代码安装,解压之后通常通过特定的命令或者脚本来配置和编译源代码,最终完成安装。

  4. 双击已下载的安装包,根据安装向导完成安装。

    image

  5. 打开命令提示符(CMD)或PowerShell窗口。

    image

  6. 输入node -vnpm -v,如果出现如下图所示的信息,表示安装成功。

    image

部署测试项目

  1. 创建测试项目文件夹newfolder与TXT文件example.txt

    image

  2. 鼠标双击打开example.txt文件,并将以下内容复制粘贴到文件中。

    本示例中,项目占用的端口号为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}/`);
    });
  3. 修改example.txt文件的后缀名为example.jsimage

  4. 进入项目目录,输入npm init命令初始化项目。按照提示填写项目信息,生成package.json文件。image

  5. 使用node example.js命令运行Node.js项目。成功手动部署Node.js环境后,Node.js服务器将在本地运行,并在命令行中显示相关信息。image

  6. 在ECS实例的安全组中添加入方向规则,以放行项目中配置的端口号3000,具体操作可参考添加安全组规则image

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

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