在前端开发中,Node.js 已成为不可或缺的一部分。在将 Node.js 应用部署到生产环境时,我们需要一种高效的工具来简化部署流程,减少出错可能,而 PM2 正是这样一种工具。本文将详细介绍如何使用 PM2 将 Node.js 应用部署到生产环境中。
准备工作
在开始编写 Node.js 应用之前,我们需要先安装 Node.js 和 PM2。可以从官网上下载最新版本的 Node.js(注意选择适合自己操作系统的版本),然后通过 npm 安装 PM2:
npm install pm2 -g
编写 Node.js 应用
下面我们以一个简单的 Node.js 应用为例,演示如何使用 PM2 将其部署到生产环境。
-- -------------------- ---- ------- -- ------ ----- ---- - ---------------- ----- -------- - ------------ ----- ---- - ----- ----- ------ - ------------------------------- ---- - ------------------ ---------------- --------------- -------------- ---------- --- ------------------- --------- ---------- - ------------------- ------- -- ------------------------------ ---
这是一个非常简单的 Node.js 应用,监听 3000 端口,返回一个文本字符串。
部署 Node.js 应用
在 Node.js 应用的目录下,使用以下命令启动应用:
pm2 start app.js
这个命令会启动 Node.js 应用,并使用 PM2 来监控应用的运行情况。PM2 会创建一个应用进程,并为该进程分配一个唯一的 ID。
可以使用以下命令查看进程列表:
pm2 list
我们可以看到,PM2 会给应用进程分配一个唯一的 ID(0),并显示该进程的状态(运行中),CPU 和内存使用情况,以及日志文件的路径。
接下来,我们可以使用以下命令来停止或删除应用进程:
pm2 stop 0 # 停止应用进程 pm2 delete 0 # 删除应用进程
设置进程管理
PM2 可以根据需求自动管理进程的数量。以下命令将在后台运行两个应用进程:
pm2 start app.js -i 2
如果我们希望 PM2 自动根据 CPU 核心数量来分配进程数量,可以使用以下命令:
pm2 start app.js -i max
可以使用以下命令来查看当前进程数量:
pm2 show 0
可以使用以下命令来设置进程数量:
pm2 scale 0 3
这个命令会将进程数量设置为 3。如果希望 PM2 自动根据 CPU 核心数量来分配进程数量,可以使用以下命令:
pm2 scale 0 max
设置自动重启
如果 Node.js 应用由于内存泄漏或其他原因而挂掉,我们希望 PM2 能够自动重启应用。以下命令将启用自动重启功能:
pm2 start app.js --name my-app --watch --ignore-watch="node_modules"
这个命令会启用自动重启功能,并监视应用目录下的文件变化。如果检测到文件变化,PM2 会自动重启应用。如果我们希望 PM2 忽略某些文件夹,可以使用 --ignore-watch 选项。
设置日志记录
PM2 会将应用日志输出到应用目录下的 .pm2/logs 文件夹中。以下命令将设置日志级别为 debug:
pm2 start app.js --name my-app --log-level=debug
可以使用以下命令来查看日志文件:
pm2 logs my-app
这个命令会输出 my-app 应用的日志记录。如果希望 PM2 输出更详细的信息,可以使用以下命令:
pm2 logs my-app --raw
总结
通过上述步骤,我们可以快速而安全地将 Node.js 应用部署到生产环境中。PM2 提供了自动化管理 Node.js 应用的功能,极大地提高了生产环境部署的效率,同时减少了出错的可能性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c6464810032fedd38c3bd0