1. 程式人生 > >Linux(Centos)服務器配置node項目

Linux(Centos)服務器配置node項目

分享圖片 acc cep del borde exp 基本配置 inux 下載

以阿裏雲服務器,CentOS系統為例

上一節已經提到怎麽安裝nodejs,以下是以vue項目為例

步驟:

(1)首先安裝vue腳手架@vue/cli, 官網參考

  vue-cli3.x

1 [root@lunix ~]# npm i @vue/cli -g

  vue-cli2.x

1 [root@lunix ~]# npm install -g @vue/cli-init

  默認文件會安裝之前下載的node目錄node/node_module, 執行命令會安裝到node/bin

  比如這裏將node下載至/usr/local/src下

  技術分享圖片

  找到bin目錄,查看可發現多出vue命令

  技術分享圖片

  題外話:在react腳手架中create-react-app可以不用全局安裝,使用npx可直接下載模板, 但@vue/cli如何使用暫時未找到答案

1 $ npx create-react-app my-app

  此時vue並不能全局使用,需要建立軟連接到/usr/bin, 需要註意的是源文件和目標文件路徑必須是絕對路徑。

技術分享圖片

(2) 創建項目

1 $ vue create my-app

  運行項目

1 $ npm run serve
2 or
3 $ yanr serve

(3)開啟端口  

最後在客戶端電腦瀏覽器上訪問IP地址+項目端口號, 如:123.22.14.76:3000, 報錯如下,此時需要到阿裏雲控制臺上找到對應的服務器,添加安全組規則,步驟如下:

登錄自己的阿裏雲賬號 -----> 控制臺上找到對應的“服務器實例” -----> 進入實例“管理”頁面 ----> 找到“本實例安全組” ----> "配置規則" ----> "添加安全組規則" ----> 在彈出的窗口中輸入“端口範圍”是需要使用到的端口3000, ”授權對象“是‘0.0.0.0/0‘ , 其他默認即可。

技術分享圖片

  最後,還需要在服務器中開啟該端口(默認端口80不需要), 並重啟服務

1 $ /sbin/iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
2 $ service network restart

技術分享圖片

  此時,可以在瀏覽器上正常訪問服務端項目。

基本配置完成=======================================================================

但是,在服務器啟動node項目時,不能關閉命令窗口(即 yarn start 或者 npm start不能停止), 此時需要用到pm2工具。

1. 安裝pm2

1 [root@lunix ~]# npm i pm2 -g

創建軟連接

1 [root@lunix ~]# ln -s /usr/local/src/node-v10.15.0/bin/pm2 /usr/bin/pm2

運行pm2會有以下幫助

技術分享圖片

2. 使用pm2

  切換到項目根目錄

(1)對於koa(express)項目,直接運行腳本文件

參考簡書, 官網PM2

$ pm2 start ./www
或者
$ pm2 start app.js

(2)對於運行script腳本, 註意--左右有空格

1 $ pm2 start npm -- start
1 $ pm2 start npm --name vue-app -- run serve

// 以上命令中, 參數--name設置進程名(默認不設置時為目錄名),

// 後面的 -- 雙橫左右有空格, 後面的 run serve為 項目package.json中的scripts腳本, 當是start或test時,不用加前置 run

// 運行後得到下圖, online表示運行成功

技術分享圖片

(3)其他命令

  • 停止:pm2 stop app_name|app_id
  • 刪除:pm2 delete app_name|app_id <可刪除列表中的停止進程如: pm2 delete 1>
  • 重啟:pm2 restart app_name|app_id
  • 停止所有:pm2 stop all
  • 查看所有的進程:pm2 list
  • 查看所有的進程狀態:pm2 status
  • 查看某一個進程的信息:pm2 describe app_name|app_id

最後,有了pm2就可以在服務器上同時啟動多個項目。當然要確保不同的端口

題外話:如果需要將項目映射到同一個域名時,可設置二級域名

Linux(Centos)服務器配置node項目