自建windows服務器如何部署egg應用


1. 使用IE瀏覽器登陸VPN


2. 遠程登陸

3. 在服務器安裝最新的node.js,git等

4. 下載源碼

> git clone ****.git

5. npm安裝依賴

> cd you-project
> npm i

6. 使用egg單進程啟動

// 安裝最新的egg包
// 在項目根目錄下新建run.js

const egg = require('egg');

function normalizePort(val) {
  const listenPort = parseInt(val, 10);

  if (isNaN(listenPort)) {
    return val;
  }

  if (listenPort >= 0) {
    return listenPort;
  }

  return false;
}

const port = normalizePort(process.env.PORT) || 3000;

egg.start({ ignoreWarning: true })
  .then(app => {
    app.listen(port);
    app.logger.info(`server running  on ${port} ...`);
  });

測試啟動

> node run.js

7. pm2啟動

  • 安裝pm2
> npm i pm2 -g
  • 新建pm2啟動文件
module.exports = {
  apps : [{
    name: '****',
    script: 'run.js',

    // Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/
    args: 'one two',
    instances: 4,
    autorestart: true,
    watch: false,
    max_memory_restart: '4G',
    env: {
      NODE_ENV: 'development',
    },
    env_production: {
      NODE_ENV: 'production',
      APP_URL: '*****',
      DB_HOST: 'localhost',
      DB_PORT: '3306',
      DB_USERNAME: '*****',
      DB_PASSWORD: '*****',
      DB_DATABASE: '*****',
      EGG_SERVER_ENV: '****',
    },
  }],
};

  • 生產環境啟動
$ pm2 start ecosystem.config.js --env production
  • 測試環境啟動
$ pm2 start ecosystem.config.js

8. 開放3000端口

參考 https://blog.csdn.net/zzq900503/article/details/11936379

9. 安裝mysql,

參考: https://blog.csdn.net/u013235478/article/details/50623693, 設置mysql開機啟動

10. 設置pm2開機啟動,使用nssm

  • 查看PM2_HOME, pm2 save
  • 設置系統環境變量 PM2_HOME = C:\Users\GYSD\.pm2
  • 驗證 echo %PM2_HOME%
  • 創建啟動腳本 pm2_startup.bat
@echo off
set HOMEDRIVE=C:
set PM2_HOME=C:\Users\***\.pm2

@REM Ensure that pm2 command is part of your PATH variable
@REM  if you're not sure, add  it here, as follow:
set path=C:\Users\****\AppData\Roaming\npm;%path%

@REM Optionally, you can add 'pm2 kill' just before 
@REM  resurrect (adding a sleep between 2 commands):
@REM    pm2 kill
@REM    timeout /t 5 /nobreak > NUL
@REM    pm2 resurrect
@REM otherwise, you can simple call resurrect as follow:
pm2 resurrect

echo "Done"

  • nssm.exe install MyPM2Service

    • 選擇自己的 pm2_startup.bat 路徑
  • 重啟查看

參考:https://blog.cloudboost.io/nodejs-pm2-startup-on-windows-db0906328d75


免責聲明!

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



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