如何使用PM2部署Node.js项目

为什么使用 PM2?

  1. 进程管理:PM2可以管理多个Node.js进程,并确保它们始终运行。如果进程崩溃或停止,则PM2可以自动重新启动它们。
  2. 日志管理:PM2可以记录Node.js应用程序的输出,并将其保存到文件中,可以轻松查看和分析这些日志文件,以便快速诊断和解决问题。
  3. 负载均衡:PM2可以配置负载均衡,将流量分配到多个Node.js进程中。这可以提高应用程序的可扩展性和可靠性。
  4. 部署管理:PM2可以帮助您轻松地部署和管理Node.js应用程序。可以使用PM2来部署应用程序,以便它们可以在多个服务器上运行,或者在生产环境中运行。
  5. 监控:PM2可以监控Node.js应用程序的运行情况,并提供有用的指标和警报。这可以帮助了解应用程序的性能和可靠性,并及时识别潜在的问题。

PM2快速上手

  1. 安装PM2

    npm install pm2 -g
  2. 进入Node.js项目根目录

    // app.js
    // simple server
    
    const express = require('express');
    const app = express();
    
    app.get('/hello', (req, res)=>{
      res.send('hello')
    })
    
    app.listen(8888, () =>{
      console.log('Server listening on port 8888')
    })
  3. 启动项目

    pm2 start app.js

  4. 确认程序状态

    pm2 list

  5. 查看日志

    pm2 log 

  6. 停止应用程序

    pm2 stop [app-id/app-name]

  7. 重启应用

    pm2 restart [app-id/app-name]

pm2 一些其他的常用命令

  • 删除所有应用程序:pm2 delete all

  • 删除指定应用程序:pm2 delete [app-id/app-name]

  • 监控和管理在 PM2 中运行的 Node.js 应用程序:pm2 monit。 通过 pm2 monit命令,可以在终端中打开一个仪表盘,显示所有正在运行的应用程序及其资源使用情况,例如 CPU 和内存使用情况、请求次数等等。通过这些监控指标,可以更好地了解应用程序的运行情况,并及时发现潜在的问题,从而做出相应的优化或调整。

  • 将 PM2 设置为开机自启动:pm2 startup

  • 存当前运行的应用程序列表,以便下次启动时自动恢复:pm2 save

  • 重新启动(直接将server kill掉然后重新启动一个server)名为 app.js 的应用程序:pm2 restart app.js

    注:重新启动的这一段时间内,server是有一个空窗期的。这个时间内所有的request都会被内核拒绝,因为根本没有它们需要找的server存在。

  • 重新加载名为 app.js 的应用程序:pm2 reload app.js

    注:重载是对于cluster模式而言的,通过重新加载,pm2将逐个重新启动所有进程,始终保持至少一个进程运行。reload命令会先创建一个server,然后将原server kill掉,此时原server上的正在执行的request因为进程被关闭而失败。后续的request进来时,因为新server已经启动了。所以不存在空窗期,所以后续的request不会报错。

通过配置文件启动Node.js 项目

  1. 新建deploy.json

    {
      "apps":[
          {
              "name": "app-server",
              "script": "app.js",
              "exec_mode": "fork",
              "watch": false,
              "ignore_watch" : [
                  "node_modules", 
                  "files"
              ],
              "log_date_format": "YYYY-MM-DD HH:mm:ss",
              "max_memory_restart": "3G",
              "env": {
                  "COMMON_VARIABLE": "true"
              },
              "env_production": {
                  "NODE_ENV": "production"
              }
          }
      ],
      "deploy": {
          "production": {
              "post-deploy": "pm2 startOrRestart deploy.json --env production",
              "env": {
                  "NODE_ENV": "production",
                  "PORT": "8888"
              }
          }
      }
    }
  2. 启动:pm2 startOrRestart deploy.json --env production

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Node.js项目部署到阿里云服务器(centos),您可以按照以下步骤进行操作: 1. 首先,登录到您的阿里云服务器。您可以使用SSH客户端(如PuTTY)连接到服务器。 2. 在服务器上安装Node.js。您可以使用Node.js官方网站提供的安装包进行安装,也可以使用包管理工具(如yum)进行安装。 3. 检查Node.js是否成功安装。通过运行命令`node -v`和`npm -v`分别检查Node.js和npm的版本号,确保它们都已安装成功。 4. 在服务器上创建一个目录来存储您的Node.js项目文件。您可以选择在默认的`/var/www/html/`目录下创建一个新目录,或者根据您的需求选择其他位置。 5. 将您的Node.js项目文件上传到服务器的目录中。您可以使用FTP客户端(如FileZilla)将项目文件上传到服务器,或者通过git命令将文件从本地仓库推送到服务器上。 6. 在服务器上安装项目所需的依赖。在项目文件的根目录下,运行`npm install`命令安装项目的依赖模块。 7. 使用PM2进程管理工具来启动Node.js应用程序。运行`npm install -g pm2`命令来全局安装PM2,然后使用`pm2 start app.js`命令启动您的Node.js应用程序。 8. 配置防火墙规则以允许对Node.js应用程序的访问。您可以在阿里云控制台中配置安全组规则,确保服务器的80端口(或您的Node.js应用程序使用的任何其他端口)是开放的。 9. 进行域名解析(可选)。如果您有一个域名,您可以将其解析到服务器的IP地址上,以便用户可以通过域名访问您的Node.js应用程序。 通过以上步骤,您的Node.js项目将成功部署到阿里云服务器上,并可以通过服务器的IP地址或域名进行访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值