接上篇《67、上线-开启gzip和配置HTTPS服务》
上一篇我们学习了如何开启gzip配置来减少文件访问体积,并配置HTTPS服务。本篇我们讲解一下如何使用pm2管理项目。
本篇是该系列的最后一篇,感谢各位小伙伴坚持到最后,祝各位技术越来越牛逼(#^.^#)。

一、前言

我们打开之前打包部署的前端项目,找到启动文件app.js,其中我们创建了一个运行在8080端口的服务:

//导入express
const express = require('express')
// 导入compression压缩插件包
const compression = require('compression');
//创建web服务器
const app = express()// 启动compression压缩插件中间件
app.use(compression())
//在这里调用express.static()方法, 快速对外提供静态资源
//如果要对外提供多个静态资源目录,重复写更换文件目录即可
app.use(express.static('./dist'))//启动web服务器
app.listen(8088,(req,res)=>{console.log('express server running at 127.0.0.1:8088')})

我们运行该项目的时候,是需要通过命令窗口进入项目app.js所在目录,然后使用“node .\app.js”去启动它,才能在浏览器中访问我们的系统:

如果此时我们关闭这个命令窗口时,服务就停掉了,我们也无法访问系统了。此时就存在一个问题,如果我在服务器中开启很多个这样的项目,就会出现很多个这种命令窗口,很不好管理而且容易误操作关闭。

那么我们现在急需要一种手段,在我们启动了web网站之后,关闭命令窗口,也能让系统正常保持运行状态。此时我们就需要借助pm2的管理工具来完成。

二、什么是pm2?

1、pm2简介

pm2是可以用于生产环境的Nodejs的进程管理工具,并可以查看node进程的状态,同时支持性能监控,进程守护,负载均衡等功能,并且使用起来非常简单。同类工具还有Supervisor、Forever等。
总而言之,pm2最好的用处就是可以保证服务不会中断一直在线,并且可以监控我们的生产环境下的node程序运行状态。

2、pm2主要特性

●内建负载均衡(使用node cluster集群模块,可以使用服务器上的所有cpu)

●后台运行(node app.js 这种命令是直接在前台运行的,不稳定,很容易断)

●0秒停机重载(上线升级的时候不需要停机)

●停止不稳定的进程(避免无限循环)

●控制台检测

三、如何安装和使用pm2

首先我们需要在服务器安装pm2,使用"npm i pm2 -g"指令全局安装:

当程序安装完毕之后,使用“pm2 start .\app.js --name web_vueshop”启动项目:

该指令的格式是“pm2 start <script_file|config_file> [options]”,含义是启动指定应用的意思。其中“<script_file|config_file>”是脚本或者配置文件的名称,“[options]”是设置的参数,这里的“--name web_vueshop”就是为脚本服务自定义一个服务名称“web_vueshop”。
我们运行该指令后,可以看到最后打印了一个表格:

该表格显示我们当前服务器上运行了一个项目,名称为“web_vueshop”,模式是“fork”,状态是在线,还显示cpu占用率以及内存的占用率。
此时我们把命令窗口关闭,发现依然可以访问我们的项目:

这就是pm2将项目作为后台服务托管的好处。

然后运行“pm2 ls”指令(“pm2 list”命令的简写),可以查看目前pm2托管运行的所有进程情况:

可以看到我们名为“web_vueshop”的服务正在运行着。

我们还可以通过“pm2 stop 服务名”来停止项目后台服务的运行:

可以看到服务已经停止了:

我们还可以通过“pm2 restart 服务名”来进行项目的重启(这里最后跟上我们前面自定义的服务名即可):

可以看到服务又可以访问了:

我们还可以通过“pm2 delete 服务名”来删除项目后台服务:

删除后通过“pm2 ls”查看服务列表,可以看到服务已经不存在了,此时访问系统也是不可用状态。

至此,我们的pm2的使用也讲解完毕,全系列已结束,完结撒花✿✿ヽ(°▽°)ノ✿!

再次感谢各位的支持!请关注后续我的新系列博文~

参考:黑马程序员(www.itheima.com)Vue项目实战教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/127335393

【VUE项目实战】68、使用pm2管理项目相关推荐

  1. Vue + Element-UI —— 项目实战(零)(项目概述)

    Vue + ElementUI 后台管理项目实战 内容 参考链接 一 Vue + Element-UI -- 项目实战(零)(项目概述[附源码]) 二 Vue + Element-UI -- 项目实战 ...

  2. Spring Boot + vue-element 开发个人博客项目实战教程(一、项目介绍和规划)

    ⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...

  3. 【PBL项目实战】户外智慧农场项目实战系列之4——Mind+Mixly双平台ESP32数据上云及云端可视化实时展示

    [PBL项目实战]户外智慧农场项目实战系列之4--Mind+Mixly双平台ESP32数据上云及云端可视化实时展示 原文链接  https://mp.weixin.qq.com/s/r_NeJdPoi ...

  4. 【PBL项目实战】户外智慧农场项目实战系列——7.Mind+Mixly双平台工业级多合一空气质量传感器数据上云及云端可视化展示

    [PBL项目实战]户外智慧农场项目实战系列--7.Mind+Mixly双平台工业级多合一空气质量传感器数据上云及云端可视化展示 原文链接  https://mp.weixin.qq.com/s/ZEU ...

  5. 【PBL项目实战】户外智慧农场项目实战系列——5.天气预报API接口对接

    [PBL项目实战]户外智慧农场项目实战系列--5.天气预报API接口对接 原文链接  https://mp.weixin.qq.com/s/jditkIEd-UK6cSQyCC_-Eg 本系列以户外智 ...

  6. 【PBL项目实战】户外智慧农场项目实战系列——1.阿里云物联网平台的开通与云端可视化应用的新建

    岭师人工智能素养教育共同体PBL项目教程系列之1:户外智慧农场项目实战系列 原文链接  https://mp.weixin.qq.com/s/avKWJHNvnPeFsdEXUBByjw 本系列以户外 ...

  7. 【PBL项目实战】户外智慧农场项目实战系列——2.产品与设备的新建及与云端可视化应用的关联

    [PBL项目实战]户外智慧农场项目实战系列--2.产品与设备的新建及与云端可视化应用的关联 原文链接  https://mp.weixin.qq.com/s/mH4bRSf93QC4Jhhd5ci2m ...

  8. Pytorch项目实战聊天机器人(02.项目的准备阶段)

    Pytorch项目实战聊天机器人(02.项目的准备阶段) 02.项目的准备阶段 二.2-2 NLP涉及知识 三.2-3 NLTK库 四 ,2-4 语料和词性标注 五 ,2-5 分词 六 , 2-6 T ...

  9. 【PBL项目实战】户外智慧农场项目实战系列——3.云端可视化页面开发及设备数据源的配置与调试

    [PBL项目实战]户外智慧农场项目实战系列--3.云端可视化页面开发及设备数据源的配置与调试 原文链接  https://mp.weixin.qq.com/s/5OT57-_QlN7lwRMWvey4 ...

最新文章

  1. java 为什么有匿名类_全面了解Java中的内部类和匿名类
  2. Coursera课程Python for everyone:Quiz: Object Oriented Programming
  3. TO B 产品经理:如何推动产品商业化?
  4. OpenCV文件输入输出的序列化功能的实例(附完整代码)
  5. C语言中编译、生成、调试、运行的区别
  6. 这种个性化可视化图也太可爱了吧!
  7. cad.net 获取所有已经安装的cad版本信息
  8. NOIP2015普及组第1题 45 金币 方法三(python3实现)
  9. sqlsever 导入大数据sql文件
  10. 31个用来测试你网站各项性能的免费在线工具
  11. [Spring+SpringMVC+Mybatis]框架学习笔记(四):Spring实现AOP
  12. python数据分析实例_Python数据分析及可视化实例之爬虫源码(05)
  13. MSBuild 命令参数
  14. python获取百度迁徙大数据
  15. xshell绿色版下载-连接远程服务器-unzip使用
  16. Modelica学习笔记
  17. 负二项分布(一种离散分布)
  18. IMPLEMENT_DYNAMIC
  19. 【前端】HTML标签(下)
  20. java Optional操作

热门文章

  1. 下拉菜单Spinner用法
  2. 学习日记day16 ps
  3. 文件夹别名路径 请求图片时报错
  4. ERROR 1366 (HY000): Incorrect string value: ‘\xE8\xB5\xB5 \xE9\x9B...‘ for column ‘s_name‘ at row 1
  5. 期货交易品种基本面分析(期货品种技术面分析)
  6. 小程序开发华为P20、voiv下Echarts图表不显示数据、坐标轴等问题
  7. 如果你的爆款产品还没有……可能即将被KO
  8. 善于记录,善于总结——《走出软件作坊》读后感
  9. 慕课网风袖小程序 一一第一阶段
  10. snes :fe4 rom hack for the graphic and animate #1