阿里雲服務器(BT面板)Vue+Node(Egg)部署流程

  項目是Vue+Egg,服務器是阿里雲的linux,安裝了BT面
  這個流程適合,發佈不頻繁,個人項目,小型項目。
  下一步我會升級爲,使用git,或者git+jekins的方式,實現每次merge自動發佈。

前端VUE項目部署

項目位置,D:\personalProject\vuepro\coderIndex
node: 10.11.0
vue:2.9.3
elementUI:2.12.0
webpack-dev-server:2.11.5

  1. vue 項目啓動 npm run dev
  2. 打包 npm run build 生成dist文件
  3. 壓縮 zip
  4. 上傳到服務器對應的網站目錄下, 推薦兩個工具Xftp 6,WinSCP,只推薦這兩個工具,需要安裝包可以去公衆號 “耐撕程序員”,私聊發送關鍵字“ftp”即可獲得下載鏈接
  5. 解壓到當前目錄下 unzip dist.zip

知識點:

zip命令

zip -r myfile.zip ./*
將當前目錄下的所有文件和文件夾全部壓縮成myfile.zip文件
-r表示遞歸壓縮子目錄下所有文件.

unzip

unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解壓到 /home/sunny/
-o:不提示的情況下覆蓋文件;
-d:-d /home/sunny 指明將文件解壓縮到/home/sunny目錄下;

服務端node,egg框架

E:\egg\egg-example
node: 10.11.0
egg: 2.2.1
egg 官方部署文檔:https://eggjs.org/zh-cn/core/deployment.html

JavaScript 語言本身不需要編譯的,構建過程主要是下載依賴

$ cd baseDir
$ npm install --production
$ tar -zcvf ../release.tgz .

構建完成後打包成 tgz 文件,部署的時候解壓啓動就可以了。

隨便寫了一個,打包腳本 buildAndTar.sh

npm install --production && tar -zcvf ../release.tgz . 
if [ ! -d ../product ];then
mkdir ../product 
else
echo dir exist
fi
mv -f ../release.tgz ../product/
啓動

$ egg-scripts start --port=7001 --daemon --title=egg-server-showcase
如上示例,支持以下參數:
–port=7001 端口號,默認會讀取環境變量 process.env.PORT,如未傳遞將使用框架內置端口 7001。
–daemon 是否允許在後臺模式,無需 nohup。若使用 Docker 建議直接前臺運行。
–env=prod 框架運行環境,默認會讀取環境變量 process.env.EGG_SERVER_ENV, 如未傳遞將使用框架內置環境 prod。
–workers=2 框架 worker 線程數,默認會創建和 CPU 核數相當的 app worker 數,可以充分的利用 CPU 資源。
–title=egg-server-showcase 用於方便 ps 進程時 grep 用,默認爲 egg-server-${appname}。
–framework=yadan 如果應用使用了自定義框架,可以配置 package.json 的 egg.framework 或指定該參數。
–ignore-stderr 忽略啓動期的報錯。
–https.key 指定 HTTPS 所需密鑰文件的完整路徑。
–https.cert 指定 HTTPS 所需證書文件的完整路徑。
所有 egg-cluster 的 Options 都支持透傳,如 --port 等。

停止

$ egg-scripts stop [--title=egg-server]

–title=egg-server 用於殺死指定的 egg 應用,未傳遞則會終止所有的 Egg 應用。

服務器安裝了bt面板,使用pm2管理

在egg項目的根目錄定義啓動文件:文件名爲server.js

const egg = require('egg');
const workers = Number(process.argv[2] || require('os').cpus().length);
egg.startCluster({
workers,
baseDir: __dirname,
});
  1. 命令
    安裝:npm install pm2 -g
    更新:pm2 update
    啓動(注意當前應爲項目根目錄):pm2 start server.js --name test

  2. bt面板控制

    1. 安裝pm2
      安裝

    2. 設置pm2管理器

      1. 首先選擇node版本,選擇自己使用的版本,
        在這裏插入圖片描述

      2. 其次纔是 添加新項目:
        選擇egg項目根目錄,輸入啓動文件名稱server.js ,輸入項目名稱(自己命名),點擊添加

        等一會就會啓動服務,並且顯示端口和狀態。
        在這裏插入圖片描述

注意項

如果遇到問題請檢查這三點,具體報錯信息和清空不貼了。

  1. 不要忘記安裝 egg-scripts ,npm i egg-scripts --save
  2. 阿里雲服務器,將 config.{env}.js 的 hostname 改爲服務器內部網址
    可以去阿里雲控制檯,找到服務器,在列表中有內外網ip
  3. 可以使用bt進行域名映射,即網址訪問

微信公衆號: 耐撕程序員
有資源
有想法
有技術貼
隨手掃一掃
不吃虧不上當
大家一起天天向上
歡迎掃碼關注相互交流

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章