小满服务端pm2

2023年 8月 15日 61.4k 0

PM2介绍

PM2是Node应用进程管理器。可以利用它来简化很多node应用管理的繁琐任务。如:性能监控、自动重启、负载均衡等。因为在工作中遇到服务器重启后,需要一个一个去重新启动每个服务,这样不仅繁琐、效率低,而且容易遗忘开启一些服务。

PM2的主要特性

  • 内容负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0秒停机重载
  • 具有Ubuntu和CenteOS的启动脚本
  • 停止不稳定的进程(避免无线循环)
  • 控制台检测
  • 提供HTTP API
  • 远程控制和实时的接口API(Nodejs模块,允许和PM2进程管理器交互)

示例

创建一个node服务端:

  • 创建一个空的文件夹
  • 使用vscode打开,然后在此文件夹下新建好几个.js文件
  • 在此文件夹下初始化npm
    npm init -y
    
  • 填入如下代码:
    // 第一个js文件
    const express = require('express')
    
    const app = express()
    
    app.get('/index', (req, res) => {
      res.send({
        code: 200,
        msg: '请求成功!',
      })
    })
    
    app.listen(9999, () => {
      console.log('9999已运行')
    })
    
    // 第二个
    const express = require('express')
    
    const app = express()
    
    app.get('/index2', (req, res) => {
      res.send({
        code: 200,
        msg: '请求成功!',
      })
    })
    
    app.listen(8888, () => {
      console.log('8888已运行')
    })
    ......
    
  • 启动每一个node服务
    node index[n].js
    
  • 你会发现,我们每次启动一个node服务就得新开一个终端,而且每次都要在终端内执行node index[n].js命令,显得非常繁琐。

    安装PM2

  • 安装
    npm install -g pm2
    
  • 检查是否安装成功
    pm2 -v
    
  • 使用pm2启动node服务

  • 进入到项目目录下
  • 使用PM2来启动node服务
    pm2 start index[n].js
    
  • image.png

    image.png

    使用PM2我们不再需要开多个终端来运行多个node服务,而且可以清晰明了的看见有多少个以及具体是哪个node服务在运行中。

    字段 说明
    name 这个node服务运行的哪个文件
    status 这个node服务的运行状态,是否正在运行中。

    常用命令

    • 查看运行日志:
    pm2 log
    

    image.png

    • 查看进程列表:
    pm2 list
    

    image.png

    • 停止某个服务:
    pm2 stop |
    

    image.png

    image.png

    image.png

    停掉服务之后,我们就无法进行访问了。

    • 重启服务:
    pm2 restart |
    

    image.png

    重启之后我们又可以进行访问了:

    image.png

    • 删除进程
    pm2 delete |
    

    image.png

    • 改变文件内容自动重启服务
    pm2 start .js --watch
    

    输入这个命令,当你对所监听的服务的文件内容修改,pm2会自动帮你重新启动。

    pm2.gif

    • 为服务分配线程
    pm2 start .js --watch -i max|number
    

    分配多少个线程这个取决于你的电脑配置。max表示分配最大线程。

    认识服务器

    我们可以购买:阿里云、腾讯云、百度云等等。

    买完服务器之后一定记得先重置一下服务器密码。

    • 服务器信息

      • ip地址:分为公网ip和内网ip,公网ip对外,内网ip对内,一般我们通过公网ip去访问我们的服务器。
      • 域名:配域名和dns解析,让域名解析到服务器的公网ip地址上面,然后我们就可以通过域名机进行访问服务器。
      • 镜像信息:服务器的系统镜像,比如:CentOS(linux服务器)、Ubuntu(linux服务器)、windows服务器。
      • DDos攻击状态:DDos是一种攻击手段,通常用于将网站挤爆。
    • 防火墙:

      • HTTP:TCP协议,默认端口80
      • HTTPS:TCP协议,默认端口443
      • SSH:TCP协议,默认端口22,用于连接服务器

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论