使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

超過十多年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,小程序定制開發(fā),微信開發(fā),重慶App定制開發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!

1、pm2簡介

pm2(process manager)是一個(gè)進(jìn)程管理工具,維護(hù)一個(gè)進(jìn)程列表,可以用它來管理你的node進(jìn)程,負(fù)責(zé)所有正在運(yùn)行的進(jìn)程,并查看node進(jìn)程的狀態(tài),也支持性能監(jiān)控,負(fù)載均衡等功能。

1.1、使用pm2管理的node程序的好處

  • 監(jiān)聽文件變化,自動(dòng)重啟程序

  • 支持性能監(jiān)控

  • 負(fù)載均衡

  • 程序崩潰自動(dòng)重啟

  • 服務(wù)器重新啟動(dòng)時(shí)自動(dòng)重新啟動(dòng)

  • 自動(dòng)化部署項(xiàng)目

 2、pm2安裝與使用

 2.1、全局安裝

npm install pm2 -g

2.2、常用命令

啟動(dòng)一個(gè)node程序

 pm2 start start.js

使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目

啟動(dòng)進(jìn)程并指定應(yīng)用的程序名

pm2 start app.js --name application1

集群模式啟動(dòng)

  // -i 表示 number-instances 實(shí)例數(shù)量
  // max 表示 PM2將自動(dòng)檢測可用CPU的數(shù)量 可以自己指定數(shù)量
  pm2 start start.js -i max

使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目

添加進(jìn)程監(jiān)視

 // 在文件改變的時(shí)候會(huì)重新啟動(dòng)程序
  pm2 start app.js --name start --watch

使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目

列出所有進(jìn)程

pm2 list
pm2 ls // 簡寫

從進(jìn)程列表中刪除進(jìn)程

// pm2 delete [appname] | id
pm2 delete app // 指定進(jìn)程名刪除
pm2 delete 0  // 指定進(jìn)程id刪除

刪除進(jìn)程列表中所有進(jìn)程

 pm2 delete all

查看某個(gè)進(jìn)程具體情況

 pm2 describe app

使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目

查看進(jìn)程的資源消耗情況

pm2 monit

使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目

重啟進(jìn)程

pm2 restart app // 重啟指定名稱的進(jìn)程
pm2 restart all // 重啟所有進(jìn)程

查看進(jìn)程日志

pm2 logs app  // 查看該名稱進(jìn)程的日志
pm2 logs all  // 查看所有進(jìn)程的日志

設(shè)置pm2開機(jī)自啟

開啟啟動(dòng)設(shè)置,此處是CentOS系統(tǒng),其他系統(tǒng)替換最后一個(gè)選項(xiàng)(可選項(xiàng):ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)

pm2 startup centos

然后按照提示需要輸入的命令進(jìn)行輸入

最后保存設(shè)置

pm2 save

3、通過pm2配置文件來自動(dòng)部署項(xiàng)目

確保服務(wù)器安裝了pm2,沒有安裝的話先安裝

npm install pm2 -g

3.1 在項(xiàng)目根目錄下新建一個(gè) deploy.yaml 文件

# deploy.yaml
apps:
 - script: ./start.js    # 入口文件
  name: 'app'       # 程序名稱
  env:           # 環(huán)境變量
   COMMON_VARIABLE: true
  env_production:
   NODE_ENV: production

deploy:           # 部署腳本
 production:        # 生產(chǎn)環(huán)境
  user: lentoo      # 服務(wù)器的用戶名
  host: 192.168.2.166   # 服務(wù)器的ip地址
  port: 22        # ssh端口
  ref: origin/master   # 要拉取的git分支
  ssh_options: StrictHostKeyChecking=no # SSH 公鑰檢查
  repo: https://github.com/**.git # 遠(yuǎn)程倉庫地址
  path: /home       # 拉取到服務(wù)器某個(gè)目錄下
  pre-deploy: git fetch --all # 部署前執(zhí)行
  post-deploy: npm install && pm2 reload deploy.yaml --env production # 部署后執(zhí)行
  env:
   NODE_ENV: production

3.2、配置git的ssh免密認(rèn)證

在服務(wù)器中生成rsa公鑰和私鑰,當(dāng)前是 centos7 下進(jìn)行

前提服務(wù)器要安裝git,沒有安裝的先安裝git,已安裝的跳過

 yum –y install git

生成秘鑰

ssh-keygen -t rsa -C xxx@xxx.com

在~/.ssh目錄下有 id_rsa和 id_rsa.pub兩個(gè)文件,其中id_rsa.pub文件里存放的即是公鑰key。

登錄到GitHub,點(diǎn)擊右上方的頭像,選擇settings ,點(diǎn)擊Add SSH key,把id_rsa.pub的內(nèi)容復(fù)制到里面即可。

使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目

3.3 使用pm2部署項(xiàng)目

每次部署前先將本地的代碼提交到遠(yuǎn)程git倉庫

首次部署

pm2 deploy deploy.yaml production setup

部署完成后,既可登陸服務(wù)器查看配置的目錄下是否從git上拉取了項(xiàng)目

再次部署

pm2 deploy deploy.yaml production upddate

3.4 該部署流程同樣適用前端項(xiàng)目

如vue-cli的項(xiàng)目,自動(dòng)部署到服務(wù)器,自動(dòng)執(zhí)行npm run build 命令,生成的dist目錄,指定到nginx的靜態(tài)文件目錄下。

4、可能會(huì)遇到的坑

在window系統(tǒng)下 vscode的命令行程序,以及powershell執(zhí)行部署的命令時(shí),出現(xiàn)部署失敗

pm2 deploy deploy.yaml production setup

使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目

關(guān)于使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

新聞標(biāo)題:使用pm2怎么自動(dòng)化部署一個(gè)node項(xiàng)目-創(chuàng)新互聯(lián)
本文路徑:http://bm7419.com/article36/ijcpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站改版、標(biāo)簽優(yōu)化、網(wǎng)站導(dǎo)航、App設(shè)計(jì)全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名