全部產品
Search
文件中心

Elastic Compute Service:部署Node.js環境

更新時間:Jan 17, 2025

本文檔簡述了在阿里雲ECS執行個體上手動部署Node.js環境的基本步驟和注意事項,旨在協助開發人員快速、順利地搭建Node.js開發或運行環境。

前提條件

重要

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

部署Node.js環境時,已有ECS執行個體必須滿足以下條件:

  • 執行個體已指派固定公網IP或綁定Elastic IP Address,詳情請參見開通公網

  • 作業系統必須滿足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`

    image

  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) => {
          // 設定狀態代碼為200
          res.statusCode = 200;
          // 設定內容類型為純文字
          res.setHeader('Content-Type', 'text/plain');
          // 添加Cache-Control頭部,禁止緩衝
          res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
          // 添加Pragma頭部,禁止緩衝(為了相容舊版瀏覽器)
          res.setHeader('Pragma', 'no-cache');
          // 設定Expires頭部為一個過去的日期,使內容立即到期。或者使用具體的到期日期,如 'Expires: Tue, 03 Jul 2001 06:00:00 GMT'
          res.setHeader('Expires', '0'); 
          // 發送響應體
          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) => {
        // 設定狀態代碼為200
        res.statusCode = 200;
        // 設定內容類型為純文字
        res.setHeader('Content-Type', 'text/plain');
        // 添加Cache-Control頭部,禁止緩衝
        res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
        // 添加Pragma頭部,禁止緩衝(為了相容舊版瀏覽器)
        res.setHeader('Pragma', 'no-cache');
        // 設定Expires頭部為一個過去的日期,使內容立即到期。或者使用具體的到期日期,如 'Expires: Tue, 03 Jul 2001 06:00:00 GMT'
        res.setHeader('Expires', '0'); 
        // 發送響應體
        res.end('Hello World\n');
    });
    // 監聽指定的連接埠和主機名稱
    server.listen(port, hostname, () => {
        console.log(`Server running at http://${hostname}:${port}/`);
    });
  3. 修改example.txt檔案的尾碼名為example.jsimage

  4. 開啟命令提示字元(CMD)或PowerShell視窗。進入newfolder目錄後,輸入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