欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用PM2部署node.js項(xiàng)目的方法教程

 更新時(shí)間:2017年05月10日 10:22:59   作者:passerbyli  
pm2 = P (rocess) M (anager)2,是可以用于生產(chǎn)環(huán)境的Nodejs的進(jìn)程管理工具,并且它內(nèi)置一個(gè)負(fù)載均衡。下面這篇文章主要給大家介紹了利用PM2部署node.js項(xiàng)目的方法教程,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

前言

大家在開發(fā)中應(yīng)該發(fā)現(xiàn)了,如果直接通過(guò)node app來(lái)啟動(dòng),如果報(bào)錯(cuò)了可能直接停在整個(gè)運(yùn)行,supervisor感覺只是拿來(lái)用作開發(fā)環(huán)境的。再網(wǎng)上找到pm2.目前似乎最常見的線上部署nodejs項(xiàng)目的有forever,pm2這兩種。下面本文將詳細(xì)介紹利用PM2部署node.js項(xiàng)目的方法教程,需要的朋友們下面來(lái)一起看看詳細(xì)的介紹:

使用場(chǎng)合:

  • supervisor是開發(fā)環(huán)境用。
  • forever管理多個(gè)站點(diǎn),每個(gè)站點(diǎn)訪問(wèn)量不大,不需要監(jiān)控。
  • pm2 網(wǎng)站訪問(wèn)量比較大,需要完整的監(jiān)控界面。

PM2的主要特性:

  • 內(nèi)建負(fù)載均衡(使用Node cluster 集群模塊)
  • 后臺(tái)運(yùn)行
  • 0秒停機(jī)重載,我理解大概意思是維護(hù)升級(jí)的時(shí)候不需要停機(jī).
  • 具有Ubuntu和CentOS 的啟動(dòng)腳本
  • 停止不穩(wěn)定的進(jìn)程(避免無(wú)限循環(huán))
  • 控制臺(tái)檢測(cè)
  • 提供 HTTP API
  • 遠(yuǎn)程控制和實(shí)時(shí)的接口API ( Nodejs 模塊,允許和PM2進(jìn)程管理器交互 )

安裝

npm install -g pm2

用法

$ npm install -g pm2 命令行全局安裝pm2

$ pm2 start app.js 啟動(dòng)app項(xiàng)目

$ pm2 list 列出由pm2管理的所有進(jìn)程信息,還會(huì)顯示一個(gè)進(jìn)程會(huì)被啟動(dòng)多少次,因?yàn)闆](méi)處理的異常。

$ pm2 monit 監(jiān)視每個(gè)node進(jìn)程的CPU和內(nèi)存的使用情況

$ pm2 logs 顯示所有進(jìn)程日志

$ pm2 stop all 停止所有進(jìn)程

$ pm2 restart all 重啟所有進(jìn)程

$ pm2 reload all 0秒停機(jī)重載進(jìn)程 (用于 NETWORKED 進(jìn)程)

$ pm2 stop 0 停止指定的進(jìn)程

$ pm2 restart 0 重啟指定的進(jìn)程

$ pm2 startup 產(chǎn)生 init 腳本 保持進(jìn)程活著

$ pm2 web 運(yùn)行健壯的 computer API endpoint (http://localhost:9615)

運(yùn)行進(jìn)程的不同方式:

$ pm2 start app.js -i max 根據(jù)有效CPU數(shù)目啟動(dòng)最大進(jìn)程數(shù)目

$ pm2 start app.js -i 3 啟動(dòng)3個(gè)進(jìn)程

$ pm2 start app.js -x 用fork模式啟動(dòng) app.js 而不是使用 cluster

$ pm2 start app.js -x -- -a 23 用fork模式啟動(dòng) app.js 并且傳遞參數(shù) (-a 23)

$ pm2 start app.js --name serverone 啟動(dòng)一個(gè)進(jìn)程并把它命名為 serverone

$ pm2 stop serverone 停止 serverone 進(jìn)程

$ pm2 start app.json 啟動(dòng)進(jìn)程, 在 app.json里設(shè)置選項(xiàng)

$ pm2 start app.js -i max -- -a 23 在--之后給 app.js 傳遞參數(shù)

$ pm2 start app.js -i max -e err.log -o out.log 啟動(dòng) 并 生成一個(gè)配置文件

配置pm2啟動(dòng)文件

在項(xiàng)目根目錄添加一個(gè)processes.json:

內(nèi)容如下:

{
 "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
 }
 ]
}

說(shuō)明:

  • apps:json結(jié)構(gòu),apps是一個(gè)數(shù)組,每一個(gè)數(shù)組成員就是對(duì)應(yīng)一個(gè)pm2中運(yùn)行的應(yīng)用
  • name:應(yīng)用程序名稱
  • cwd:應(yīng)用程序所在的目錄
  • script:應(yīng)用程序的腳本路徑
  • log_date_format:
  • error_file:自定義應(yīng)用程序的錯(cuò)誤日志文件
  • out_file:自定義應(yīng)用程序日志文件
  • pid_file:自定義應(yīng)用程序的pid文件
  • instances:
  • min_uptime:最小運(yùn)行時(shí)間,這里設(shè)置的是60s即如果應(yīng)用程序在60s內(nèi)退出,pm2會(huì)認(rèn)為程序異常退出,此時(shí)觸發(fā)重啟max_restarts設(shè)置數(shù)量
  • max_restarts:設(shè)置應(yīng)用程序異常退出重啟的次數(shù),默認(rèn)15次(從0開始計(jì)數(shù))
  • cron_restart:定時(shí)啟動(dòng),解決重啟能解決的問(wèn)題
  • watch:是否啟用監(jiān)控模式,默認(rèn)是false。如果設(shè)置成true,當(dāng)應(yīng)用程序變動(dòng)時(shí),pm2會(huì)自動(dòng)重載。這里也可以設(shè)置你要監(jiān)控的文件。
  • merge_logs:
  • exec_interpreter:應(yīng)用程序的腳本類型,這里使用的shell,默認(rèn)是nodejs
  • exec_mode:應(yīng)用程序啟動(dòng)模式,這里設(shè)置的是cluster_mode(集群),默認(rèn)是fork
  • autorestart:啟用/禁用應(yīng)用程序崩潰或退出時(shí)自動(dòng)重啟
  • vizion:啟用/禁用vizion特性(版本控制)

可以通過(guò)pm2 start processes.json來(lái)啟動(dòng)。

也可以把命令寫在package.json里。如下:

通過(guò)npm run pm2來(lái)啟動(dòng)。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Express框架之connect-flash詳解

    Express框架之connect-flash詳解

    本篇文章主要介紹了Express框架之connect-flash詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • node實(shí)現(xiàn)登錄圖片驗(yàn)證碼的示例代碼

    node實(shí)現(xiàn)登錄圖片驗(yàn)證碼的示例代碼

    這篇文章主要介紹了node實(shí)現(xiàn)登錄圖片驗(yàn)證碼的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Egret引擎開發(fā)指南之編譯項(xiàng)目

    Egret引擎開發(fā)指南之編譯項(xiàng)目

    Egret框架是一個(gè)基于MIT開源協(xié)議許可的永久免費(fèi)的項(xiàng)目!你可以在項(xiàng)目中隨意使用且修改它,并且擁有100%的控制權(quán)。你可以從Egret的Github網(wǎng)站獲取它的源代碼,從而了解和學(xué)習(xí)它的核心細(xì)節(jié)。Egret具有完善的文檔,并且易于上手學(xué)習(xí),可以讓你更容易專注于游戲本身的開發(fā)
    2014-09-09
  • Node的文件系統(tǒng)你了解多少

    Node的文件系統(tǒng)你了解多少

    這篇文章主要為大家詳細(xì)介紹了Node的文件系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • node.js中的http.response.getHeader方法使用說(shuō)明

    node.js中的http.response.getHeader方法使用說(shuō)明

    這篇文章主要介紹了node.js中的http.response.getHeader方法使用說(shuō)明,本文介紹了http.response.getHeader的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易登錄身份認(rèn)證

    Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易登錄身份認(rèn)證

    本篇文章主要介紹了Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易身份認(rèn)證示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-04-04
  • Node Sass依賴問(wèn)題排查思路解析

    Node Sass依賴問(wèn)題排查思路解析

    這篇文章主要為大家介紹了Node Sass依賴問(wèn)題排查思路解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 使用node.js 制作網(wǎng)站前臺(tái)后臺(tái)

    使用node.js 制作網(wǎng)站前臺(tái)后臺(tái)

    本文給大家介紹實(shí)用node.js 制作網(wǎng)站前臺(tái)和后臺(tái),非常的詳盡,有需要的朋友可以參考下
    2014-11-11
  • Node.js中常規(guī)的文件操作總結(jié)

    Node.js中常規(guī)的文件操作總結(jié)

    關(guān)于Node.js中文件的常規(guī)操作,主要的就是fs這個(gè)模塊。對(duì)于node.js中fs模塊提供的API很多,但是其所有的方法均有同步和異步的形式。那么下面這篇文章我們就來(lái)詳細(xì)介紹下關(guān)于Node.js中文件的常規(guī)操作,有需要的朋友們可以參考借鑒。
    2016-10-10
  • 解析NodeJs的調(diào)試方法

    解析NodeJs的調(diào)試方法

    本文主要介紹了NodeJs調(diào)試的步驟,以及實(shí)例方法,具有一定的參考作用,需要的朋友可以看下
    2016-12-12

最新評(píng)論