PM2部署node.js專案
使用PM2來部署nodejs專案。
如果直接通過node app來啟動,如果報錯了可能直接停在整個執行,supervisor感覺只是拿來用作開發環境的。再網上找到pm2.目前似乎最常見的線上部署nodejs專案的有forever,pm2這兩種。 使用場合:
- supervisor是開發環境用。
- forever管理多個站點,每個站點訪問量不大,不需要監控。
- pm2 網站訪問量比較大,需要完整的監控介面。
PM2的主要特性:
- 內建負載均衡(使用Node cluster 叢集模組)
- 後臺執行
- 0秒停機過載,我理解大概意思是維護升級的時候不需要停機.
- 具有Ubuntu和CentOS 的啟動指令碼
- 停止不穩定的程序(避免無限迴圈)
- 控制檯檢測
- 提供 HTTP API
- 遠端控制和實時的介面API ( Nodejs 模組,允許和PM2程序管理器互動 )
安裝
npm install -g pm2
用法
$ npm install -g pm2
命令列全域性安裝pm2$ pm2 start app.js
啟動app專案$ pm2 list
列出由pm2管理的所有程序資訊,還會顯示一個程序會被啟動多少次,因為沒處理的異常。
$ pm2 monit
監視每個node程序的CPU和記憶體的使用情況
$ pm2 logs
顯示所有程序日誌
$ pm2 stop all
$ pm2 restart all
重啟所有程序
$ pm2 reload all
0秒停機過載程序 (用於 NETWORKED 程序)
$ pm2 stop 0
停止指定的程序
$ pm2 restart 0
重啟指定的程序
$ pm2 startup
產生 init 指令碼 保持程序活著
$ pm2 web
執行健壯的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0
$ pm2 delete all
殺死全部程序
執行程序的不同方式:
$ pm2 start app.js -i max
根據有效CPU數目啟動最大程序數目
$ pm2 start app.js -i 3
啟動3個程序
$ pm2 start app.js -x
用fork模式啟動 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23
用fork模式啟動 app.js 並且傳遞引數 (-a 23)
$ pm2 start app.js --name serverone
啟動一個程序並把它命名為 serverone
$ pm2 stop serverone
停止 serverone 程序
$ pm2 start app.json
啟動程序, 在 app.json裡設定選項
$ pm2 start app.js -i max -- -a 23
在--之後給 app.js 傳遞引數
$ pm2 start app.js -i max -e err.log -o out.log
啟動 並 生成一個配置檔案
配置pm2啟動檔案
在專案根目錄新增一個processes.json: 內容如下:
{
"apps": [
{
"name": "mywork",
"cwd": "/srv/node-app/current",
"script": "bin/www",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"error_file": "/var/log/node-app/node-app.stderr.log",
"out_file": "log/node-app.stdout.log",
"pid_file": "pids/node-geo-api.pid",
"instances": 6,
"min_uptime": "200s",
"max_restarts": 10,
"max_memory_restart": "1M",
"cron_restart": "1 0 * * *",
"watch": false,
"merge_logs": true,
"exec_interpreter": "node",
"exec_mode": "fork",
"autorestart": false,
"vizion": false
}
]
}
說明:
- apps:json結構,apps是一個數組,每一個數組成員就是對應一個pm2中執行的應用
- name:應用程式名稱
- cwd:應用程式所在的目錄
- script:應用程式的指令碼路徑
- log_date_format:
- error_file:自定義應用程式的錯誤日誌檔案
- out_file:自定義應用程式日誌檔案
- pid_file:自定義應用程式的pid檔案
- instances:
- min_uptime:最小執行時間,這裡設定的是60s即如果應用程式在60s內退出,pm2會認為程式異常退出,此時觸發重啟max_restarts設定數量
- max_restarts:設定應用程式異常退出重啟的次數,預設15次(從0開始計數)
- cron_restart:定時啟動,解決重啟能解決的問題
- watch:是否啟用監控模式,預設是false。如果設定成true,當應用程式變動時,pm2會自動過載。這裡也可以設定你要監控的檔案。
- merge_logs:
- exec_interpreter:應用程式的指令碼型別,這裡使用的shell,預設是nodejs
- exec_mode:應用程式啟動模式,這裡設定的是cluster_mode(叢集),預設是fork
- autorestart:啟用/禁用應用程式崩潰或退出時自動重啟
- vizion:啟用/禁用vizion特性(版本控制)
可以通過pm2 start processes.json
來啟動。
也可以把命令寫在package.json裡。如下:
通過npm run pm2
來啟動。
原文:https://www.jianshu.com/p/d2a640b8661c
相關推薦
PM2部署node.js專案
使用PM2來部署nodejs專案。 如果直接通過node app來啟動,如果報錯了可能直接停在整個執行,supervisor感覺只是拿來用作開發環境的。再網上找到pm2.目前似乎最常見的線上部署nodejs專案的有forever,pm2這兩種。 使用場合: supervis
利用forever和pm2部署node.js
moni 停止 AR ins 自動重啟 api 項目 help appid 一、forever forever可以在cmd或ssh連接斷開時,讓項目一直運行,而且可以在項目崩潰時自動重啟 ?安裝 npm install -g forever ?forever的幫助手冊
阿里雲ECS伺服器部署Node.js專案詳細教程及多網站部署
本文詳細介紹如何部署NodeJS專案到阿里雲ECS上,以及本人在部署過程中所遇到的問題、坑點和解決辦法,可以說是全網最全最詳細的教程了。同時講解了如何申請阿里雲免費SSL證書,以及一臺ECS伺服器配置多網站的Nginx配置方法等。 作者:Kovli 1. 雲伺
阿里云云伺服器ECS部署Node.js專案
雲伺服器 ECS:參考阿里雲技術與支援-幫助文件點選開啟連結雲伺服器(Elastic Compute Service,簡稱 ECS)是一種簡單高效、處理能力可彈性伸縮的計算服務,快速構建更穩定、安全的應
pm2部署node專案
安裝: npm install pm2 -g 更新: pm2 update pm2命令: 啟動express專案命令: pm2 start ./bin/www 列印日誌: pm2 logs 實時更新程式碼,不重啟伺服器,類似於熱更新:
node.js專案線上伺服器部署
圖1 node.js專案線上部署思路圖 假設我們電腦本地有五個專案:1.靜態網站 2.電影網站 3. 手機app 4.微信小程式 5.微信公眾號 這些應用都是跑在我們電腦本地,誰也看不到。我們需要放到網上供別人使用。 首先我們為這五個專
小試牛刀,pm2管理多個node.js專案
安裝pm2npm install -g pm2寫一個簡單的配置檔案pm2_config.json:{ "apps":[ { "name":"resource-server", "cwd":"/dtedu/platforms/resource-ser
通過新浪雲部署Node.js微信小程序商城(不用買域名、不用備案、不用配置https)
個數 bre rem faq 開發 mem nbsp edi home 本文檔為微信小程序商城NideShop項目的安裝部署教程(GitHub),歡迎star 一、購買新浪雲SAE 為什麽選擇SAE?免費二級域名和支持https訪問,不用備案,可用做微信小程序服務器。 S
一種簡單的生產環境部署Node.js程序方法
set process 一次 ann 來安 環境配置 load 修改 evel 最近在部署Node.js程序時,寫了段簡單的腳本,發覺還挺簡單的,忍不住想與大家分享。 配置文件 首先,本地測試環境和生產環境的數據庫連接這些配置信息是不一樣的,需要將其分開為兩個文件存儲
Linux環境部署Node.js
文件夾 taobao http nodejs 裝包 oba xshell5 tar 切換 介紹 先前在阿裏雲ECS上部署Node.js,碰到不少坑,都是自己不仔細造成的,所以準備再部署一遍,並記錄下來。我將我的服務器重置了,這次選擇的是CentOS 7.4 64位,上次的是
新浪SAE部署node.js(秒懂版)
使用 跳轉 start star 不出 發布 自動構建 依賴 .json 最近做了一個關於音樂的小項目想發布到公網,看了看大廠的雲虛擬主機感覺不太劃算,有大佬告訴我可以試試新浪SAE,我打開新浪雲官網感覺還不錯,決定在他上面部署看看。 找到產品-雲應用SAE-創建新應用,填
Node.js專案
這裡mongose語言可以參考https://www.jianshu.com/p/2f54b90efe15 首先配置好入口檔案app.js app.js中比較重要的兩個模組是express swig(用於解析模板內容) 檔案解析模板swig的配置
開發筆記13 | 部署 Node.js 應用程式到雲 ECS
<<系列文章集 前言 在之前的一篇文章中,我們介紹了 如何將一個本地的 Java 應用程式直接部署到阿里雲 ECS ,有不少讀者反饋,在本文中,我們來介紹如何部署 Node.js 應用程式到阿里雲 ECS。 本地開發 本文采用一個極其基礎的樣例《在 Web 頁面列印 HelloWorl
Docker部署Node.js的方法步驟
前言 專案中會用到node做中間層,部署node則是用到了docker,在這裡總結、記錄下部署要點和步驟;關於docker的介紹和安裝這裡就不贅述了,網上也有很多相關的教程和文章了,需要可自行搜尋檢視。 專案結構 -- docker-node |-- data
不用買域名、不用備案、不用配置https快速部署Node.js微信小程式商城
本文件為開源微信小程式商城 NideShop 專案的安裝部署教程,歡迎 star NideShop 商城 api 服務端:https://github.com/tumobi/nideshop NideShop 微信小程式客戶端: https://github.com/tumobi/n
使用Jenkins部署Vue.js專案
Jenkins是非常流行的持續整合工具。使用Jenkins部署伺服器端應用程式是非常方便的,那麼使用Jenkins部署web前端應用程式效果怎麼樣呢,如果可以使用Jenkins部署,那麼就可以直接從版本庫自動拉取,自動構建,相比傳統方式會省去很多麻煩。 一、準備 伺服器上
中小型的 Node.js 專案目錄
build 構建指令碼 dist 編譯出來的釋出版 docs 文件 examples 示例檔案 src 原始碼 test 測試指令碼 .babelrc Babel 交叉編譯的配置 .eslintrc ESLint 測試配置&n
node.js專案框架搭建
一、使用Node搭建伺服器專案 1.//全域性安裝 express sudo npm install -g express-generator 2.//使用ejs建立工程 express -e NodeTest 3.//進入工程 cd NodeTest 4.//下載專案所需
Node.js專案的package.json配置檔案中的devdependencies 和 dependencies的區別
1、dependencies和devDependencies 具體程式碼如下 "name": "webpack-react-express", "version": "0.2.0", "private": true, "dependencies": {
Ansible部署Node.js,讓你從簡操作
下面我們將要在我們的CentOS6.x伺服器上配置Nodejs,啟動一個簡單的nodejs例項,這個伺服器有很簡單的架構。 開始了,首先建立一個playbook檔案,我們儘量讓它保持簡單。 --- - hosts: all tasks: 定義一些執行這個playbook的主機,然後下面列出一