目录
1、pm2简介
1.1、使用pm2管理的node程序的好处
2、pm2安装与使用
2.1、全局安装
2.2、常用命令
3、通过pm2配置文件来自动部署项目
3.1 在项目根目录下新建一个 deploy.yaml 文件
3.2 配置git的ssh免密认证
3.3 使用pm2部署项目
3.4 该部署流程同样适用前端项目
4、可能会遇到的坑
首页 web前端 js教程 手把手教你安装和配置pm2,实现自动化部署node项目

手把手教你安装和配置pm2,实现自动化部署node项目

Dec 29, 2021 pm 07:15 PM
node pm2

pm2怎么自动化部署nodejs项目?下面本篇文章给大家介绍一下安装和配置pm2,并实现自动化部署node项目的方法,希望对大家有所帮助!

手把手教你安装和配置pm2,实现自动化部署node项目

1、pm2简介

pm2(process manager)是一个进程管理工具,维护一个进程列表,可以用它来管理你的node进程,负责所有正在运行的进程,并查看node进程的状态,也支持性能监控,负载均衡等功能。

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

  • 监听文件变化,自动重启程序

  • 支持性能监控

  • 负载均衡

  • 程序崩溃自动重启

  • 服务器重新启动时自动重新启动

  • 自动化部署项目

2、pm2安装与使用

2.1、全局安装

npm install pm2 -g
登录后复制
登录后复制

2.2、常用命令

  • 启动一个node程序

        pm2 start start.js
    登录后复制

1.png

  • 启动进程并指定应用的程序名

        pm2 start app.js --name application1
    登录后复制
  • 集群模式启动

        // -i 表示 number-instances 实例数量
        // max 表示 PM2将自动检测可用CPU的数量 可以自己指定数量
        pm2 start start.js -i max
    登录后复制

2.png

  • 添加进程监视

    // 在文件改变的时候会重新启动程序
    pm2 start app.js --name start --watch
    登录后复制

3.png

  • 列出所有进程

        pm2 list
        pm2 ls // 简写
    登录后复制
  • 从进程列表中删除进程

        // pm2 delete [appname] | id
        pm2 delete app  // 指定进程名删除
        pm2 delete 0    // 指定进程id删除
    登录后复制
  • 删除进程列表中所有进程

        pm2 delete all
    登录后复制
  • 查看某个进程具体情况

        pm2 describe app
    登录后复制

4.png

  • 查看进程的资源消耗情况

        pm2 monit
    登录后复制

5.png

  • 重启进程

        pm2 restart app // 重启指定名称的进程
        pm2 restart all // 重启所有进程
    登录后复制
  • 查看进程日志

        pm2 logs app    // 查看该名称进程的日志
        pm2 logs all    // 查看所有进程的日志
    登录后复制
  • 设置pm2开机自启

开启启动设置,此处是CentOS系统,其他系统替换最后一个选项(可选项:ubuntu, centos, redhat, gentoo, systemd, darwin, amazon)

    pm2 startup centos
登录后复制

然后按照提示需要输入的命令进行输入

最后保存设置

pm2 save
登录后复制

3、通过pm2配置文件来自动部署项目

确保服务器安装了pm2,没有安装的话先安装

npm install pm2 -g
登录后复制
登录后复制

3.1 在项目根目录下新建一个 deploy.yaml 文件

# deploy.yaml
apps:
  - script: ./start.js       # 入口文件
    name: 'app'              # 程序名称
    env:                     # 环境变量
      COMMON_VARIABLE: true
    env_production:
      NODE_ENV: production

deploy:                     # 部署脚本
  production:               # 生产环境
    user: lentoo            # 服务器的用户名
    host: 192.168.2.166     # 服务器的ip地址
    port: 22                # ssh端口
    ref: origin/master      # 要拉取的git分支
    ssh_options: StrictHostKeyChecking=no # SSH 公钥检查
    repo: https://github.com/**.git # 远程仓库地址
    path: /home              # 拉取到服务器某个目录下
    pre-deploy: git fetch --all # 部署前执行
    post-deploy: npm install &&  pm2 reload deploy.yaml --env production # 部署后执行
    env:
      NODE_ENV: production
登录后复制

3.2 配置git的ssh免密认证

  • 在服务器中生成rsa公钥和私钥,当前是 centos7 下进行

  • 前提服务器要安装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的内容复制到里面即可。

6.png

3.3 使用pm2部署项目

每次部署前先将本地的代码提交到远程git仓库

  • 首次部署

pm2 deploy deploy.yaml production setup
登录后复制
登录后复制

部署完成后,既可登陆服务器查看配置的目录下是否从git上拉取了项目

  • 再次部署

pm2 deploy deploy.yaml production update
登录后复制

3.4 该部署流程同样适用前端项目

如vue-cli的项目,自动部署到服务器,自动执行npm run build 命令,生成的dist目录,指定到nginx的静态文件目录下。

4、可能会遇到的坑

  • 在window系统下 vscode的命令行程序,以及powershell执行部署的命令时,出现部署失败

pm2 deploy deploy.yaml production setup
登录后复制
登录后复制

7.png

解决方案:使用git命令行来执行

更多node相关知识,请访问:nodejs 教程!!

以上是手把手教你安装和配置pm2,实现自动化部署node项目的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

nvm 怎么删除node nvm 怎么删除node Dec 29, 2022 am 10:07 AM

nvm删除node的方法:1、下载“nvm-setup.zip”并将其安装在C盘;2、配置环境变量,并通过“nvm -v”命令查看版本号;3、使用“nvm install”命令安装node;4、通过“nvm uninstall”命令删除已安装的node即可。

node项目中如何使用express来处理文件的上传 node项目中如何使用express来处理文件的上传 Mar 28, 2023 pm 07:28 PM

怎么处理文件上传?下面本篇文章给大家介绍一下node项目中如何使用express来处理文件的上传,希望对大家有所帮助!

Node服务怎么进行Docker镜像化?极致优化详解 Node服务怎么进行Docker镜像化?极致优化详解 Oct 19, 2022 pm 07:38 PM

这段时间在开发一个腾讯文档全品类通用的 HTML 动态服务,为了方便各品类接入的生成与部署,也顺应上云的趋势,考虑使用 Docker 的方式来固定服务内容,统一进行制品版本的管理。本篇文章就将我在服务 Docker 化的过程中积累起来的优化经验分享出来,供大家参考。

深入浅析Node的进程管理工具“pm2” 深入浅析Node的进程管理工具“pm2” Apr 03, 2023 pm 06:02 PM

本篇文章给大家分享Node的进程管理工具“pm2”,聊聊为什么需要pm2、安装和使用pm2的方法,希望对大家有所帮助!

Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Mar 05, 2025 pm 05:57 PM

PiNetwork节点详解及安装指南本文将详细介绍PiNetwork生态系统中的关键角色——Pi节点,并提供安装和配置的完整步骤。Pi节点在PiNetwork区块链测试网推出后,成为众多先锋积极参与测试的重要环节,为即将到来的主网发布做准备。如果您还不了解PiNetwork,请参考Pi币是什么?上市价格多少?Pi用途、挖矿及安全性分析。什么是PiNetwork?PiNetwork项目始于2019年,拥有其专属加密货币Pi币。该项目旨在创建一个人人可参与

聊聊用pkg将Node.js项目打包为可执行文件的方法 聊聊用pkg将Node.js项目打包为可执行文件的方法 Dec 02, 2022 pm 09:06 PM

​如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将Node项目打包为可执行文件的方法,希望对大家有所帮助!

npm node gyp失败怎么办 npm node gyp失败怎么办 Dec 29, 2022 pm 02:42 PM

npm node gyp失败是因为“node-gyp.js”跟“Node.js”版本不匹配,其解决办法:1、通过“npm cache clean -f”清除node缓存;2、通过“npm install -g n”安装n模块;3、通过“n v12.21.0”命令安装“node v12.21.0”版本即可。

使用Angular和Node进行基于令牌的身份验证 使用Angular和Node进行基于令牌的身份验证 Sep 01, 2023 pm 02:01 PM

身份验证是任何Web应用程序中最重要的部分之一。本教程讨论基于令牌的身份验证系统以及它们与传统登录系统的区别。在本教程结束时,您将看到一个用Angular和Node.js编写的完整工作演示。传统身份验证系统在继续基于令牌的身份验证系统之前,让我们先看一下传统的身份验证系统。用户在登录表单中提供用户名和密码,然后点击登录。发出请求后,通过查询数据库在后端验证用户。如果请求有效,则使用从数据库中获取的用户信息创建会话,然后在响应头中返回会话信息,以便将会话ID存储在浏览器中。提供用于访问应用程序中受

See all articles