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

使用pm2自動化部署node項目的方法步驟

 更新時間:2019年01月28日 11:07:01   作者:lentoo  
這篇文章主要介紹了使用pm2自動化部署node項目的方法步驟,pm2是一個進(jìn)程管理工具,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1、pm2簡介

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

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

  • 監(jiān)聽文件變化,自動重啟程序
  • 支持性能監(jiān)控
  • 負(fù)載均衡
  • 程序崩潰自動重啟
  • 服務(wù)器重新啟動時自動重新啟動
  • 自動化部署項目

 2、pm2安裝與使用

 2.1、全局安裝

npm install pm2 -g 

2.2、常用命令

啟動一個node程序

 pm2 start start.js

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

pm2 start app.js --name application1

集群模式啟動

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

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

 // 在文件改變的時候會重新啟動程序
  pm2 start app.js --name start --watch

列出所有進(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

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

 pm2 describe app

 

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

pm2 monit

重啟進(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開機自啟

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

pm2 startup centos 

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

最后保存設(shè)置

pm2 save

3、通過pm2配置文件來自動部署項目

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

npm install pm2 -g

3.1 在項目根目錄下新建一個 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ù)器某個目錄下
  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兩個文件,其中id_rsa.pub文件里存放的即是公鑰key。

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

3.3 使用pm2部署項目

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

首次部署

pm2 deploy deploy.yaml production setup 

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

再次部署

pm2 deploy deploy.yaml production upddate

3.4 該部署流程同樣適用前端項目

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

4、可能會遇到的坑

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

pm2 deploy deploy.yaml production setup 

解決方案:使用git命令行來執(zhí)行

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • VSCode通過Ctrl+P快速打開node_modules中的文件的操作方法

    VSCode通過Ctrl+P快速打開node_modules中的文件的操作方法

    由于node_modules目錄包含的文件太多,在VSCode中默認(rèn)情況下是禁止搜索node_modules目錄的,在這種情況下,我們將不得不依次展開node_modules的文件目錄樹,來查找我們所需要的文件,接下來介紹VSCode如何通過Ctrl+P快速打開node_modules中的文件,需要的朋友可以參考下
    2023-07-07
  • Nodejs使用mysql2操作數(shù)據(jù)庫的方法完整講解

    Nodejs使用mysql2操作數(shù)據(jù)庫的方法完整講解

    MySQL2是一個基于Node.js的MySQL數(shù)據(jù)庫驅(qū)動程序,它是MySQL官方推薦的驅(qū)動之一,下面這篇文章主要給大家介紹了關(guān)于Nodejs使用mysql2操作數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • nodejs前端模板引擎swig入門詳解

    nodejs前端模板引擎swig入門詳解

    這篇文章主要介紹了nodejs前端模板引擎swig入門詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • node.js程序作為服務(wù)并在windows下開機自啟動(用forever)

    node.js程序作為服務(wù)并在windows下開機自啟動(用forever)

    這篇文章主要介紹了node.js程序作為服務(wù)并在windows下開機自啟動的相關(guān)資料,因為實現(xiàn)的功能比較簡單,沒有選擇功能比較強大的pm2,文中選擇利用了forever,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Node.js服務(wù)端實戰(zhàn)之服務(wù)啟動過程詳解

    Node.js服務(wù)端實戰(zhàn)之服務(wù)啟動過程詳解

    這篇文章主要為大家介紹了Node.js服務(wù)端實戰(zhàn)之服務(wù)啟動過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 使用nodejs中httpProxy代理時候出現(xiàn)404異常的解決方法

    使用nodejs中httpProxy代理時候出現(xiàn)404異常的解決方法

    下面小編就為大家?guī)硪黄褂胣odejs中httpProxy代理時候出現(xiàn)404異常的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • express的中間件cookieParser詳解

    express的中間件cookieParser詳解

    這篇文章主要介紹了node.js中express的中間件cookieParser的使用方法,需要的朋友可以參考下
    2014-12-12
  • 使用Node.js實現(xiàn)一個文章生成器

    使用Node.js實現(xiàn)一個文章生成器

    本文將從零開始,講解如何使用Node.js來實現(xiàn)一個文章生成器,node里面有很多優(yōu)秀的模塊,現(xiàn)在我們就借助node的fs模塊來操控文本,來實現(xiàn)我們想要的效果,感興趣的小伙伴跟著小編一起來看看吧
    2024-07-07
  • node 安裝 windows-build-tools全過程

    node 安裝 windows-build-tools全過程

    這篇文章主要介紹了node 安裝 windows-build-tools全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • node.js中的path.resolve方法使用說明

    node.js中的path.resolve方法使用說明

    這篇文章主要介紹了node.js中的path.resolve方法使用說明,本文介紹了path.resolve的方法說明、接收參數(shù)、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評論