Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境,用來方便地搭建快速的易於擴展的網絡應用。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效,非常適合運行在分佈式設備的數據密集型的實時應用。Node.js 的包管理器 npm,是全球最大的開源庫生態系統。典型的應用場景包括:
實時應用:如在線聊天,實時通知推送等等(如socket.io)
分佈式應用:通過高效的並行I/O使用已有的數據
工具類應用:海量的工具,小到前端壓縮部署(如grunt),大到桌面圖形界面應用程序
遊戲類應用:遊戲領域對實時和併發有很高的要求(如網易的pomelo框架)
利用穩定接口提升Web渲染能力
前後端編程語言環境統一:前端開發人員可以非常快速地切入到服務器端的開發(如著名的純Javascript全棧式MEAN架構)
適用對象
本文檔介紹如何在阿里雲CentOS系統的雲服務器ECS實例上,安裝Nodejs並部署項目。
準備工作
部署之前,請做如下準備工作:
購買ECS實例
您的實例運行的鏡像是CentOS7.2
您的實例可以連接公網
本地已經安裝用於連接 Linux 實例的工具,如 Xshell
基本流程
使用雲服務器 ECS 安裝Nodejs並部署項目的操作步驟如下:
購買 ECS 實例。
部署Node.js環境-二進制文件安裝。
部署Node.js環境-使用NVM安裝多版本。
部署測試項目。
注:2和3步驟,根據您的實際應用場景,任選其一。
操作步驟
步驟 1:創建ECS實例
選擇操作系統爲公共鏡像CentOS7.2。使用root用戶登錄Linux實例。
步驟2:部署Node.js環境—二進制文件安裝
該部署過程使用的安裝包是已編譯好的二進制文件,解壓之後,在bin文件夾中就已存在node和npm,無需手工編譯。
安裝步驟:
1、 wget命令下載Node.js安裝包。
該安裝包是編譯好的文件,解壓之後,在bin文件夾中就已存在node和npm,無需重複編譯。
wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz
2、 解壓文件。
tar xvf node-v6.9.5-linux-x64.tar.xz
3、創建軟鏈接,使node和npm命令全局有效。
通過創建軟鏈接的方法,使得在任意目錄下都可以直接使用node和npm命令:
ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm
4,查看node、npm版本。
node -v
npm -v
5、至此,Node.js環境已安裝完畢。
軟件默認安裝在/root/node-v6.9.5-linux-x64/目錄下。如果需要將該軟件安裝到其他目錄(如:/opt/node/)下,請進行如下操作:
mkdir -p /opt/node/
mv /root/node-v6.9.5-linux-x64/* /opt/node/
rm -f /usr/local/bin/node
rm -f /usr/local/bin/npm
ln -s /opt/node/bin/node /usr/local/bin/node
ln -s /opt/node/bin/npm /usr/local/bin/npm
步驟3:部署Node.js環境-使用NVM安裝多版本
NVM(Node version manager)是Node.js的版本管理軟件,使用戶可以輕鬆在Node.js各個版本間進行切換。適用於長期做 node 開發的人員或有快速更新node版本、快速切換node版本這一需求的用戶。
安裝步驟:
1、直接使用git將源碼克隆到本地的~/.nvm目錄下,並檢查最新版本。
yum install git
git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
2、激活NVM。
echo ". ~/.nvm/nvm.sh" >> /etc/profile
source /etc/profile
3、列出Node.js的所有版本。
nvm list-remote
4、安裝Node.js最新版本(注意看上面列表中的最新版本,這裏以v13.0.1爲例)。
nvm install v13.1.0
如果安裝了多個版本可以這樣查看:
[root@iZuf62didsxigy36d6kjtrZ .nvm]# nvm ls
切換到指定版本:
[root@iZuf62didsxigy36d6kjtrZ .nvm]# nvm use v7.4.0
步驟4:部署測試項目
1、新建項目文件example.js。
cd ~
touch example.js
2、使用vim編輯器打開項目文件example.js。
yum install vim
vim example.js
輸入“i”,進入編輯模式,將以下項目文件內容粘貼到文件中。使用“Esc”按鈕,退出編輯模式,輸入“:wq”,回車,保存文件內容並退出。
項目文件內容:
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}/`);
});
注:項目文件內容中的3000爲端口號,可以自行定義。
3、運行項目。
node ~/example.js
注:可以使用命令“node ~/example.js &”將項目置於後臺運行。
4、使用命令查看項目端口是否存在。
netstat -tpln
5、在瀏覽器中輸入http://IP:端口號 訪問項目。
安裝pm2 守護node進程
1.安裝
npm install -g pm2
此時執行pm2可能會提示找不到pm2命令
2.通過創建軟鏈接的方法,使得在任意目錄下都可以直接使用pm2命令:
ln -s /root/node-v6.9.5-linux-x64/bin/pm2 /usr/local/bin/pm2
3.運行
cd myapp/
pm2 start ./bin/www