本文檔簡述了在阿里雲ECS執行個體上手動部署Node.js環境的基本步驟和注意事項,旨在協助開發人員快速、順利地搭建Node.js開發或運行環境。
前提條件
Alibaba Cloud Linux 2和CentOS 7.x系統僅支援部署Node.js 17.x及以下版本,不支援更高版本的Node.js。
部署Node.js環境時,已有ECS執行個體必須滿足以下條件:
Linux系統
在Linux上部署Node.js,本文選擇使用NVM(Node Version Manager)。與包管理器安裝相比,NVM不受系統倉庫版本限制,確保擷取最新Node.js版本;與下載先行編譯二進位包相比,NVM省去了繁瑣的環境變數配置;與從原始碼編譯安裝相比,NVM大大縮短了安裝時間,且對使用者編譯技能無要求。更重要的是,NVM支援多版本管理,方便切換,且安裝的Node.js位於使用者家目錄,無需sudo許可權,有效降低了安全風險。
安裝Node.js
遠端連線到需要安裝Node.js的執行個體。具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
安裝分布式版本管理系統Git。
Alibaba Cloud Linux 3/2、CentOS 7.x
sudo yum install git -yUbuntu 18.x及以上版本&Debian 10.x及以上版本
sudo apt update sudo apt install git -y
使用Git將NVM的源碼複製到本地的~/.nvm目錄下,並檢查最新版本。
說明由於網路原因,可能會出現無法複製的問題,建議您多嘗試幾次。
git clone https://gitee.com/mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
依次運行以下命令,配置NVM的環境變數。
sudo sh -c 'echo ". ~/.nvm/nvm.sh" >> /etc/profile' source /etc/profile運行以下命令,修改npm鏡像源為阿里雲鏡像,以加快Node.js下載速度。
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node運行以下命令,查看Node.js版本。
nvm list-remote安裝多個Node.js版本。
重要Alibaba Cloud Linux 2 和 CentOS 7.x 僅支援 Node.js 17.x 及以下版本,請將以下命令中的版本修改為 17.x 及以下版本,例如您需要安裝 v17.9.1,請執行nvm install v17.9.1。
安裝v23.3.0版本。
nvm install v23.3.0安裝v22.11.0版本。
nvm install v22.11.0
查看已安裝的Node.js版本。
nvm ls返回結果如下所示,表示當前已安裝v22.11.0、v23.3.0兩個版本,正在使用的是v22.11.0版本。
說明您可以使用nvm use <版本號碼>命令切換Node.js的版本。例如,切換至Node.js v23.3.0版本的命令為nvm use v23.3.0。
部署測試專案
依次運行以下命令,建立測試專案檔案
example.js。返回使用者家目錄。
cd建立測試專案檔案example.js。
touch example.js
修改專案檔
example.js。運行以下命令開啟
example.js。vim example.js按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}/`); });添加完成後,按Esc鍵退出編輯模式,並輸入
:wq後按Enter鍵,儲存退出檔案。
運行專案並得到專案的連接埠號碼。
node ~/example.js運行以下命令,列出系統已在監聽的連接埠資訊。
netstat -tpln本樣本中,返回的結果清單中包含連接埠3000,表明專案正常運行。
在ECS執行個體的安全性群組中,添加入方向規則,允許存取專案中配置的連接埠號碼。
本樣本中,專案連接埠號碼為3000。添加安全性群組規則的具體操作,請參見添加安全性群組規則。

在本地Windows主機或其他任一具有公網訪問能力的Windows主機中,開啟瀏覽器並訪問
http://<ECS執行個體公網IP地址>:<專案連接埠號碼>。本樣本中,<專案連接埠號碼>為3000。訪問到的測試專案如下圖所示:

Windows系統
在Windows系統上,Node.js的部署可以通過訪問官方網站下載相應的安裝包。
安裝Node.js
遠端連線到需要安裝Node.js的執行個體。具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體。
訪問Node.js官網,單擊功能表列Download。

下載安裝包。
下載頁面提供了多種不同的安裝方式,每種方式適合不同的需求和偏好,本樣本選擇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
原始碼安裝,解壓之後通常通過特定的命令或者指令碼來配置和編譯原始碼,最終完成安裝。
雙擊已下載的安裝包,根據安裝嚮導完成安裝。

開啟命令提示字元(CMD)或PowerShell視窗。

輸入
node -v和npm -v,如果出現如下圖所示的資訊,表示安裝成功。
部署測試專案
建立測試專案檔案夾newfolder與TXT檔案example.txt。

滑鼠雙擊開啟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}/`); });修改example.txt檔案的尾碼名為example.js。

開啟命令提示字元(CMD)或PowerShell視窗。進入newfolder目錄後,輸入npm init命令初始化專案。按照提示填寫專案資訊,產生
package.json檔案。
使用node example.js命令運行Node.js專案。成功手動部署Node.js環境後,Node.js伺服器將在本地運行,並在命令列中顯示相關資訊。

在ECS執行個體的安全性群組中添加入方向規則,以允許存取專案中配置的連接埠號碼3000,具體操作可參考添加安全性群組規則。

在本地Windows主機或其他任一具有公網訪問能力的Windows主機中,開啟瀏覽器並訪問
http://<ECS執行個體公網IP地址>:<專案連接埠號碼>。本樣本中,<專案連接埠號碼>為3000。訪問到的測試專案如下圖所示:
