部署Node.js環(huán)境
本文檔簡述了在阿里云ECS實例上手動部署Node.js環(huán)境的基本步驟和注意事項,旨在幫助開發(fā)者快速、順利地搭建Node.js開發(fā)或運行環(huán)境。
前提條件
Alibaba Cloud Linux 2和CentOS 7.x系統(tǒng)僅支持部署Node.js 17.x及以下版本,不支持更高版本的Node.js。
部署Node.js環(huán)境時,已有ECS實例必須滿足以下條件:
實例已分配公網(wǎng)IP地址或綁定彈性公網(wǎng)IP(EIP)。具體操作,請參見彈性公網(wǎng)IP。
操作系統(tǒng)必須滿足Alibaba Cloud Linux 3/2、CentOS 7.x、Ubuntu 18.x及以上版本、Debian 10.x及以上版本、Windows。
配置實例的安全組入方向規(guī)則,確保22(SSH)和3389(RDP)端口的安全放行,以支持遠(yuǎn)程登錄和遠(yuǎn)程桌面連接。為了增強(qiáng)安全性,建議僅放行需要訪問的IP網(wǎng)段,避免將訪問權(quán)限授予所有IPv4地址(即0.0.0.0/0)。具體操作,請參見添加安全組規(guī)則。
Linux系統(tǒng)
在Linux上部署Node.js,本文選擇使用NVM(Node Version Manager)。與包管理器安裝相比,NVM不受系統(tǒng)倉庫版本限制,確保獲取最新Node.js版本;與下載預(yù)編譯二進(jìn)制包相比,NVM省去了繁瑣的環(huán)境變量配置;與從源代碼編譯安裝相比,NVM大大縮短了安裝時間,且對用戶編譯技能無要求。更重要的是,NVM支持多版本管理,方便切換,且安裝的Node.js位于用戶家目錄,無需sudo權(quán)限,有效降低了安全風(fēng)險。
安裝Node.js
遠(yuǎn)程連接到需要安裝Node.js的實例。具體操作,請參見使用Workbench工具以SSH協(xié)議登錄Linux實例。
安裝分布式版本管理系統(tǒng)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
使用Git將NVM的源碼克隆到本地的~/.nvm目錄下,并檢查最新版本。
說明由于網(wǎng)絡(luò)原因,可能會出現(xiàn)無法克隆的問題,建議您多嘗試幾次。
git clone https://gitee.com/mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
依次運行以下命令,配置NVM的環(huán)境變量。
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,請執(zhí)行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
返回結(jié)果如下所示,表示當(dāng)前已安裝v22.11.0、v23.3.0兩個版本,正在使用的是v22.11.0版本。
說明您可以使用nvm use <版本號>命令切換Node.js的版本。例如,切換至Node.js v23.3.0版本的命令為nvm use v23.3.0。
部署測試項目
依次運行以下命令,創(chuàng)建測試項目文件
example.js
。返回用戶家目錄。
cd
創(chuàng)建測試項目文件example.js。
touch example.js
修改項目文件
example.js
。運行以下命令打開
example.js
。vim example.js
按i鍵進(jìn)入編輯模式,并將以下內(nèi)容添加至example.js文件中。
本示例中,項目占用的端口號為3000、輸出的內(nèi)容為Hello World。您需要根據(jù)實際的業(yè)務(wù)需求自行配置項目內(nèi)容(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}/`); });
添加完成后,按Esc鍵退出編輯模式,并輸入
:wq
后按Enter鍵,保存退出文件。
運行項目并得到項目的端口號。
node ~/example.js &
運行以下命令,列出系統(tǒng)已在監(jiān)聽的端口信息。
netstat -tpln
本示例中,返回的結(jié)果列表中包含端口3000,表明項目正常運行。
在ECS實例的安全組中,添加入方向規(guī)則,放行項目中配置的端口號。
本示例中,項目端口號為3000。添加安全組規(guī)則的具體操作,請參見添加安全組規(guī)則。
在本地Windows主機(jī)或其他任一具有公網(wǎng)訪問能力的Windows主機(jī)中,打開瀏覽器并訪問
http://<ECS實例公網(wǎng)IP地址>:<項目端口號>
。本示例中,<項目端口號>為3000。訪問到的測試項目如下圖所示:
Windows系統(tǒng)
在Windows系統(tǒng)上,Node.js的部署可以通過訪問官方網(wǎng)站下載相應(yīng)的安裝包。
安裝Node.js
遠(yuǎn)程連接到需要安裝Node.js的實例。具體操作,請參見使用Workbench工具以RDP協(xié)議登錄Windows實例。
訪問Node.js官網(wǎng),單擊菜單欄Download。
下載安裝包。
下載頁面提供了多種不同的安裝方式,每種方式適合不同的需求和偏好,本示例選擇Prebuilt Installer。
說明版本選擇帶有LTS的,表示經(jīng)過長期測試,相對穩(wěn)定的版本。
安裝方式
安裝方式介紹
Package Manager
使用操作系統(tǒng)的包管理器(如npm、apt、yum、brew等)來安裝Node.js。
Prebuilt Installer
為特定操作系統(tǒng)(如Windows的.msi文件,macOS的.pkg文件)預(yù)先編譯好的安裝包。這些安裝包包含了Node.js運行時和npm,通常也包括了一些必要的依賴項。
Prebuilt Binaries
為各種平臺編譯好的Node.js可執(zhí)行文件,沒有安裝向?qū)В矣脩粜枰謩咏鈮翰⑴渲铆h(huán)境變量。
Source Code
源代碼安裝,解壓之后通常通過特定的命令或者腳本來配置和編譯源代碼,最終完成安裝。
雙擊已下載的安裝包,根據(jù)安裝向?qū)瓿砂惭b。
打開命令提示符(CMD)或PowerShell窗口。
輸入
node -v
和npm -v
,如果出現(xiàn)如下圖所示的信息,表示安裝成功。
部署測試項目
創(chuàng)建測試項目文件夾newfolder與TXT文件example.txt。
鼠標(biāo)雙擊打開example.txt文件,并將以下內(nèi)容復(fù)制粘貼到文件中。
本示例中,項目占用的端口號為3000、輸出的內(nèi)容為Hello World。您需要根據(jù)實際的業(yè)務(wù)需求自行配置項目內(nèi)容(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}/`); });
修改example.txt文件的后綴名為example.js。
進(jìn)入項目目錄,輸入npm init命令初始化項目。按照提示填寫項目信息,生成
package.json
文件。使用node example.js命令運行Node.js項目。成功手動部署Node.js環(huán)境后,Node.js服務(wù)器將在本地運行,并在命令行中顯示相關(guān)信息。
在ECS實例的安全組中添加入方向規(guī)則,以放行項目中配置的端口號3000,具體操作可參考添加安全組規(guī)則。
在本地Windows主機(jī)或其他任一具有公網(wǎng)訪問能力的Windows主機(jī)中,打開瀏覽器并訪問
http://<ECS實例公網(wǎng)IP地址>:<項目端口號>
。本示例中,<項目端口號>為3000。訪問到的測試項目如下圖所示: