CentOS7.2系統的雲伺服器ECS如何部署部署Node.js專案

gydtep發表於2019-02-13

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 例項的工具,如 PuTTY

基本流程

使用雲伺服器ECS安裝Nodejs並部署專案的操作步驟如下:

  1. 購買ECS例項,並連線例項。

  2. 選擇以下任一種方法部署Node.js環境:

  • 使用二進位制檔案。

  • 使用NVM安裝多版本。

部署測試專案。

操作步驟

步驟 1:建立ECS例項

建立ECS例項。選擇作業系統為公共映象CentOS7.2。使用root使用者 連線例項

步驟2:部署Node.js環境

使用以下任一種方法部署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/nodeln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm
  4. 檢視node、npm版本。

    node -vnpm -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/noderm -f /usr/local/bin/npm
    ln -s /opt/node/bin/node /usr/local/bin/nodeln -s /opt/node/bin/npm /usr/local/bin/npm

使用NVM安裝多版本

NVM(Node version manager)是Node.js的版本管理軟體,使使用者可以輕鬆在Node.js各個版本間進行切換。適用於長期做 node 開發的人員或有快速更新node版本、快速切換node版本這一需求的使用者。

安裝步驟:

NVM的更多操作請參考幫助文件:

nvm help
  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/profilesource /etc/profile
  3. 列出Node.js的所有版本。

    nvm list-remote
  4. 安裝多個Node.js版本。

    nvm install v6.9.5nvm install v7.4.0
  5. 執行 nvm ls 檢視已安裝Node.js版本,當前使用的版本為v6.9.5。返回結果如下所示。

    [root@iZXXXXZ .nvm]# nvm ls
         v6.9.5->       v7.4.0
         system
    stable -> 7.4 (-> v7.4.0) (default)
    unstable -> 6.9 (-> v6.9.5) (default)
  6. 執行 nvm use v7.4.0 切換Node.js版本至v7.4.0。返回結果如下所示。

    [root@iZXXXXZ .nvm]# nvm use v7.4.0Now using node v7.4.0

步驟3:部署測試專案

  1. 新建專案檔案example.js。

    cd ~
    touch example.js
  2. 使用vim編輯器開啟專案檔案example.js。

    yum install vimvim 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 `);
    });
    server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);
    });

    說明 專案檔案內容中的3000為埠號,可以自行定義。

  3. 執行專案。

    node ~/example.js

    說明 您也可以使用命令 node ~/example.js & 將專案置於後臺執行。

  4. 使用命令檢視專案埠是否存在。

    netstat -tpln
  5. 登入ECS管理控制檯,並在安全組中 新增安全組規則 放行埠(如本示例中為TCP 3000埠)。

  6. (可選)如果您的例項中開啟了防火牆,必須新增埠的入站規則(如本示例中為TCP 3000埠)。

  7. 在本地機器的瀏覽器中輸入 http://例項公網IP地址:埠號 訪問專案。
    153804316012144_zh-CN.png


相關文章