[日常填坑]阿里雲centos部署NodeJS項目


前提:

已經有ESC實例(買了阿里雲服務器了)

使用putty等遠程連接登陸

 

開始:


1. 部署Node.js環境

使用以下兩種方法之一部署Node.js環境(我一般使用二進制文件安裝)

(一)使用二進制文件安裝

該部署過程中使用的安裝包是已經編譯好的二進制文件,解壓之后,在bin文件夾中就會存在node和npm,無需手工編譯。

安裝步驟:

  1. wget命令下載Node.js安裝包。該安裝包是編譯好的文件,解壓之后,在bin文件夾中就已存在node和npm,無需重復編譯。  

    1. cd root
    2. wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz(也可以去node官網下載最新版,直接使用wget在服務器上下載或者使用pscp從本地上傳到服務器
  2. 解壓文件。

    1. tar xvf node-v6.9.5-linux-x64.tar.xz
  3. 創建軟鏈接,使node和npm命令全局有效。通過創建軟鏈接的方法,使得在任意目錄下都可以直接使用node和npm命令:

    1. ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node
    2. ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm
  4. 查看安裝好的node、npm版本。

    1. node -v
    2. npm -v
  5. 至此,Node.js環境已安裝完畢。軟件默認安裝在/root/node-v6.9.5-linux-x64/目錄下。如果需要將該軟件安裝到其他自己創建的目錄(如:/opt/node/)下,請進行如下操作:

    1. mkdir -p /opt/node/
    2. mv /root/node-v6.9.5-linux-x64/* /opt/node/
    3. rm -f /usr/local/bin/node
    4. rm -f /usr/local/bin/npm
    5. ln -s /opt/node/bin/node /usr/local/bin/node
    6. ln -s /opt/node/bin/npm /usr/local/bin/npm

(二)使用NVM安裝多版本

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

安裝步驟:

  1. 直接使用git將源碼克隆到本地的~/.nvm目錄下,並檢查最新版本。

    1. yum install git
    2. git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
  2. 激活NVM。

    1. echo ". ~/.nvm/nvm.sh" >> /etc/profile
    2. source /etc/profile
  3. 列出Node.js的所有版本。

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

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

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

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

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

  1. nvm help

 

2.部署測試項目

    1. 新建項目文件example.js。
      1. cd ~
      2. touch example.js
    2. 使用vim編輯器打開項目文件example.js。

      1. yum install vim
      2. vim example.js

      輸入 i,進入編輯模式,將以下項目文件內容粘貼到文件中。使用Esc按鈕,退出編輯模式,輸入:wq,回車,保存文件內容並退出。
      項目文件內容:

      1. const http = require('http');
      2. const hostname = '0.0.0.0';
      3. const port = 3000;
      4. const server = http.createServer((req, res) => {
      5. res.statusCode = 200;
      6. res.setHeader('Content-Type', 'text/plain');
      7. res.end('Hello World\n');
      8. });
      9. server.listen(port, hostname, () => {
      10. console.log(`Server running at http://${hostname}:${port}/`);
      11. });

      注意:
      項目文件內容中的3000為端口號,可以自行定義。

    3. 運行項目。

      1. node ~/example.js

      注意:
      可以使用命令 node ~/example.js & 將項目置於后台運行。

    4. 使用命令查看項目端口是否存在。

      1. netstat -tpln 或者 netstat -nultp
    5. 假如發現端口沒有正常運行,則可能是端口沒有放行,需要登錄ECS管理控制台,在安全組中添加安全組規則放行端口(如本示例中為TCP 3000端口)。     

 

       常用:一般可以直接使用默認允許所有端口的安全組的入站規則,即0.0.0.0。

      6. (可選)如果您的實例中開啟了防火牆,必須添加端口的入站規則(如本示例中為TCP 3000端口)。

      7. 在本地機器的瀏覽器中輸入 http://實例公網IP地址:端口號 即可訪問項目。

 

(三)部署本地上傳的nodejs項目

將代碼部署到服務器的目錄,需要注意,如果直接 npm start 或 node app.js 啟動(如部署測試項目的啟動方式),則一旦退出 ssh 遠程登陸,nodeapp 就會停止運行。

因此我們使用 forever 或者 pm2 啟動 nodeapp。

1. forever和pm2的區別

forever 管理多個站點,每個站訪問量不大,不需要監控。

pm2 網站訪問量比較大,需要完整的監控界面。

 

2. 使用forever的命令:

   npm install forever -g  

     ln -s /root/node-v6.9.5-linux-x64/bin/forever /usr/local/bin/forever

   forever start app.js  


3. 使用pm2的命令: 

      npm install pm2 -g  

     ln -s /root/node-v6.9.5-linux-x64/bin/pm2 /usr/local/bin/pm2

      pm2 start app.js  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM