生活随笔
收集整理的這篇文章主要介紹了
PM2 node进程管理工具 自动部署小结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PM2 的功能不多做介紹了,總之使用簡單,功能強大。 今天實現了本地自動部署node項目到服務器的流程。簡單總結下幾個注意點。 建議先看 文檔
先要保證要部署的服務器上(以下簡稱server)能直接ssh拉倉庫代碼,比如 git clone git@gitee.com:finley/demo.git。不行的話配下server生成ssh-key,然后把public key告訴代碼倉庫服務商,比如coding.net, github。 權限問題,比如server的登錄用戶是Ubuntu,將來項目要部署在/home/ubuntu下面,可以執行下 sudo chown ubuntu:ubuntu /home/ubuntu/.pm2/* 不然可能會部署失敗。 部署成功后會在配置的項目路徑里出現以下三個目錄: current -- 當前服務運行的文件夾(是source的軟鏈接) share -- log pid 等共享數據 source -- clone 下來的源代碼
配置腳本 module.exports = {/*** Application configuration section* http://pm2.keymetrics.io/docs/usage/application-declaration/*/apps : [{name : 'NODE-API',script : 'server.js',env_development: {NODE_ENV: 'development',SERVER_PORT: 8081,LOGSTASH_URL: 'http://localhost/finley/PHP/test.php'},env_production : {NODE_ENV: 'production',SERVER_PORT: 8081,LOGSTASH_URL: 'http://192.168.100.16:9700'}}],/*** Deployment section* http://pm2.keymetrics.io/docs/usage/deployment/*/deploy : {// 項目信息// 下面的配置是我用什么用戶登錄哪個服務器,從哪拉代碼,項目存到什么位置。拉完執行的腳本是啥'node1' : {user : 'ubuntu',// 寫成數組,可以同時部署到多臺服務器host : '119.254.xxx.xxx',ref : 'origin/develop',repo : 'ssh://git@demo.com/demo.git',// 項目的存放地址,會生成current, source, share目錄path : '/home/ubuntu/node-project',// "ssh_options": ["StrictHostKeyChecking=no", "PasswordAuthentication=no"],"post-deploy" : 'npm install && pm2 startOrRestart ecosystem.config.js --env production'}}
};
執行命令, 如果是windows,在CMD中執行沒用,建議在git bash下執行。 node1就是要部署的項目名稱 pm2 deploy ecosystem.config.js node1 setup 這個命令只是拉倉庫代碼 pm2 deploy ecosystem.config.js node1 執行這個命令會執行 post-deploy,運行項目 pm2 reload 和pm2 restart 有啥區別 官方說明:As opposed to restart, which kills and restarts the process, reload achieves a 0-second-downtime reload. 簡單理解: restart = stop+start reload = 重新讀取配置文件 具體用哪個要根據項目運行實際情況,有些項目需要7*24運行,不得stop,這時候用reload比較好。
總結
以上是生活随笔 為你收集整理的PM2 node进程管理工具 自动部署小结 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。