本文将介绍如何使用 PM2 部署 Koa.js 应用。PM2 是一个流行的 Node.js 进程管理工具,可以帮助我们管理、监控应用进程并进行自动重启、负载均衡等操作。而 Koa.js 是一个轻量级的 Node.js Web 框架,让我们可以快速搭建 Web 应用。
准备工作
在开始之前,我们需要先安装好 Node.js 和 npm。在终端中输入以下命令:
node -v
如果能正确输出 Node.js 的版本号,则说明已安装成功。接着输入以下命令:
npm -v
如果能正确输出 npm 的版本号,则说明已安装成功。
接下来,我们需要创建一个简单的 Koa.js 应用。在终端中输入以下命令:
mkdir koa-app cd koa-app npm init
按照提示依次填写信息即可。接着在终端中输入以下命令安装 Koa.js:
npm install koa
在 koa-app 目录下创建一个 index.js 文件,输入以下内容:
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello, world!'; }); app.listen(3000);
这是一个非常简单的 Koa.js 应用,它开启了一个服务器监听 3000 端口,并对所有请求返回 "Hello, world!" 字符串。
使用 PM2 部署应用
现在我们已经成功创建了一个简单的 Koa.js 应用,接下来我们将使用 PM2 来管理该应用的进程。
安装 PM2
首先,需要使用 npm 全局安装 PM2。在终端中输入以下命令:
npm install -g pm2
安装成功后,我们可以在终端中输入以下命令来检查是否安装成功:
pm2 -v
如果能正确输出 PM2 的版本号,则说明已安装成功。
启动应用
在终端中,进入 koa-app 目录,输入以下命令启动应用:
pm2 start index.js --name koa-app
这个命令会在后台启动一个 koa-app 进程,并且 PM2 会自动监控该进程。我们可以使用以下命令来查看该进程:
pm2 list
这个命令会显示所有正在运行的进程列表,其中包括我们刚刚启动的 koa-app 进程。
监控应用
PM2 提供了一个非常强大的监控工具,可以让我们实时监控应用的运行情况。在终端中输入以下命令:
pm2 monit
这个命令会打开一个实时监控的界面,可以看到应用的 CPU 利用率、内存使用情况、网络流量等。这对于我们及时发现并解决应用的性能问题非常有帮助。
自动重启应用
在实际应用中,我们可能会遇到因为某些原因导致应用崩溃的情况。这时,如果没有自动重启机制,应用将无法继续提供服务,对于用户体验来说是非常不友好的。PM2 提供了自动重启机制,可以帮助我们及时恢复应用的服务。
在终端中输入以下命令:
pm2 startup pm2 save
这两个命令会让 PM2 在系统启动时自动启动,并且保存当前应用的进程列表。
现在我们来模拟应用崩溃的情况。在 index.js 中,将 ctx.body 的值改为一个未定义的变量:
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = undefinedVar; }); app.listen(3000);
然后在终端中输入以下命令:
pm2 restart koa-app
这个命令会重启 koa-app 进程,如果应用有自动重启机制,则会自动恢复服务。我们可以通过以下命令查看应用的重启历史:
pm2 logs koa-app
这个命令会显示 koa-app 进程的日志记录,其中包括了应用的重启记录。
负载均衡
如果我们的应用需要处理大量的请求,单个进程很容易成为瓶颈。此时,我们可以通过启动多个进程来实现负载均衡,从而提高应用的并发能力。
在终端中输入以下命令:
pm2 delete koa-app pm2 start index.js -i max --name koa-app
这个命令会使用 PM2 对 koa-app 进程进行负载均衡,PM2 会根据 CPU 核心数启动多个进程,并自动进行负载均衡。我们可以使用以下命令来查看进程列表:
pm2 list
常用命令
下面是一些常用的 PM2 命令:
pm2 start app.js
:启动一个应用进程。pm2 start app.js --name "my-api"
:启动一个应用进程,设置进程名为 my-api。pm2 start app.js -i 0
:启动若干个应用进程,其中数量为 CPU 核心数。pm2 reload app.js
:重载应用进程。pm2 stop app.js
:停止一个应用进程。pm2 delete app.js
:停止并删除一个应用进程。pm2 monit
:实时监控应用。pm2 logs app.js
:显示应用的日志记录。pm2 startup
:创建系统启动项。pm2 save
:保存当前应用的进程列表。
总结
本文介绍了如何使用 PM2 部署 Koa.js 应用,包括启动应用、监控应用、自动重启、负载均衡等。通过使用 PM2,我们可以更方便地管理和监控应用,提高运维效率,并提高应用的可用性和稳定性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649ea89648841e9894b3420a