什么是 PM2?
PM2 是一个进程管理器,可用于部署和管理 Node.js 应用程序。它可以自动重启应用程序并监视它们的状态,从而可以确保应用程序在任何情况下都能保持运行状态。
PM2 的优点
使用 PM2 部署和管理 Express.js 应用程序具有以下优点:
- 无需手动重启应用程序,PM2 可以自动重启应用程序。
- 可以监视应用程序的运行状态,并在应用程序闪退或出现错误时自动重新启动。
- 提供了日志管理和集中化日志查看。
- 可以在多个端口或域名中同时运行应用程序,以提高可用性。
安装和配置 PM2
要使用 PM2,您需要首先安装它。您可以使用 Node.js 的包管理器 npm 安装 PM2:
npm install pm2 -g
安装完成后,您可以使用以下命令检查 PM2 是否正常工作:
pm2 --version
输出版本号表示 PM2 安装成功。
使用 PM2 部署 Express.js 应用程序
接下来,您需要准备一个 Express.js 应用程序。我们以一个简单的 Express.js 应用程序作为例子:
// javascriptcn.com 代码示例 const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(3000, () => { console.log('Example app listening on port 3000!'); });
将此代码保存在名为 app.js
的文件中。
要使用 PM2 部署应用程序,您需要使用以下命令启动应用程序:
pm2 start app.js
这将启动应用程序并将其添加到 PM2 管理的进程列表中。您可以使用以下命令查看运行的应用程序列表:
pm2 list
输出应如下所示:
┌──────────┬────┬─────────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐ │ Name │ id │ mode │ status │ ↺ │ memory │ uptime │ cpu │ user │ watching │ ├──────────┼────┼─────────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤ │ app │ 0 │ fork │ online│ 0 │ 18.2 MB │ 0s │ 0% │ username │ disabled │ └──────────┴────┴─────────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
现在您的 Express.js 应用程序已经在 PM2 管理的进程中运行了。如果发生故障,PM2 将自动重新启动它。但是此时,您无法通过浏览器连接到应用程序,因为应用程序正在监听本地端口 3000。
使 Express.js 应用程序对外可用
要使应用程序对外可用,您需要将其绑定到公共 IP 地址和端口上。您可以使用 PM2 的 ecosystem.config.js
文件来管理不同的应用程序环境。在当前目录下创建一个名为 ecosystem.config.js
的文件,并将以下代码添加到其中:
// javascriptcn.com 代码示例 module.exports = { apps : [{ name: 'myapp', script: './app.js', env: { NODE_ENV: 'production', PORT: 3000 } }] };
在此文件中,我们指定了应用程序的名称为 myapp
,它运行的脚本为 app.js
,并且环境变量 PORT
设置为 3000
。在此文件中,还可以设置其他环境变量以及应用程序的其他设置。
保存文件后,使用以下命令重新加载和启动应用程序:
pm2 reload ecosystem.config.js --env production
应用程序现在应该在公共 IP 地址和端口上运行,您可以在浏览器中访问它了。
PM2 的其他功能
除了管理 Node.js 应用程序之外,PM2 还提供了其他一些有用的功能,例如:
日志管理
PM2 可以将所有应用程序的日志输出到它的日志文件中。要查看应用程序的日志,请使用以下命令:
pm2 logs
进程监控
PM2 可以实时监视应用程序的 CPU 和内存使用情况,并提醒您在负载过高时启动更多实例。
pm2 monit
守护进程
PM2 可以在服务器启动时自动启动应用程序,并在服务器意外重启时自动重新启动应用程序。
pm2 startup
多应用程序管理
使用 PM2,您可以在同一个服务器上管理多个不同的 Node.js 应用程序。
总结
使用 PM2 可以极大地简化 Node.js 应用程序的部署和管理。在本教程中,我们学习了如何安装和配置 PM2,并使用它来部署和管理 Express.js 应用程序。除了管理 Node.js 应用程序之外,PM2 还提供了其他一些有用的功能,例如日志管理、进程监视和守护进程等。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654bd0687d4982a6eb59fe22