简介
PM2 是一个 Node.js 进程管理工具,可以让我们轻松地管理 Node.js 应用程序的进程、日志和服务器监控。Nginx 是一个高性能的 HTTP 和反向代理服务器,经常被用来作为后端服务器。在前端开发中,经常需要将 PM2 与 Nginx 配合使用来部署和管理 Node.js 应用程序。
本文将介绍如何在 Nginx 下正确配置 PM2,以便我们能够更好地管理我们的 Node.js 应用程序。
前提条件
在开始本教程之前,你需要满足以下条件:
- 已经安装了 Node.js。
- 已经安装了 PM2。
- 已经安装了 Nginx。
步骤
以下步骤将指导您完成 PM2 的配置以及在 Nginx 上运行您的 Node.js 应用程序。
步骤 1:创建 Node.js 应用程序
首先,我们需要创建一个简单的 Node.js 应用程序,以便我们能够测试 PM2 的部署和运行。
-- -------------------- ---- ------- -- --------- ----- ---- - ---------------- ----- ------ - ----------------------- ---- -- - ------------------ ---------------- --------------- -------------- ---------- --- ------------------- -- -- - ------------------- -- --------- -- ---- ------- ---
保存并(在终端)运行它:
node server.js
如果一切正常,你应该可以用浏览器访问 http://localhost:3000
并看到 "Hello World"。
步骤 2:使用 PM2 运行 Node.js 应用程序
接下来,我们将使用 PM2 来运行我们的 Node.js 应用程序。
首先安装 PM2:
npm install pm2 -g
然后,在终端进入 Node.js 应用程序目录并运行以下命令:
pm2 start server.js
这将启动你的 Node.js 应用程序并将它作为一个后台服务。你可以使用 pm2 list
命令来查看它是否正在运行。
步骤 3:使用 Nginx 反向代理请求
现在我们已经可以通过 PM2 启动 Node.js 应用程序了,接下来将我们的 Node.js 应用程序暴露给外部网络请求。
首先打开 Nginx 配置文件:
sudo vim /etc/nginx/nginx.conf
然后找到 http
节点,在其中添加以下配置:
-- -------------------- ---- ------- ------ - ------ --- ----------- ---------- -------- - - ---------- ---------------------- ------------------ ---- ---------------- ------- -------------- ---------------- ---------- ---------- ---------------- ---- ------ ------------------ -------------- - -
这将使 Nginx 代理所有来自 localhost:80
的请求,并将它们转发到 localhost:3000
(即我们的 Node.js 应用程序)。
重启 Nginx 使配置生效:
sudo service nginx restart
然后,你可以使用浏览器通过 http://localhost
访问你的应用程序了。
步骤 4:使用 PM2 启动多个进程
最后,我们来介绍一下如何使用 PM2 启动多个进程,以便我们可以更好地管理我们的应用程序。
假设我们的服务器性能可以承受 2 个 Node.js 进程。我们可以运行以下命令来启动两个进程:
pm2 start server.js -i 2
这将启动两个进程,每个进程都分别监听不同的端口号。你可以在终端中使用 pm2 list
命令查看两个进程的状态。
然后,我们需要更新 Nginx 配置文件,使其能够正确地接受来自多个进程的请求:
-- -------------------- ---- ------- -------- -------- - ------ --------------- ------ --------------- - ------ - ------ --- ----------- ---------- -------- - - ---------- ---------------- ------------------ ---- ---------------- ------- -------------- ---------------- ---------- ---------- ---------------- ---- ------ ------------------ -------------- - -
这将使 Nginx 代理多个进程,并将它们作为一个整体处理请求。
重启 Nginx 使配置生效:
sudo service nginx restart
然后你就可以使用浏览器访问你的应用程序了。Nginx 将自动处理请求,将它们发送到两个进程中的任意一个。
总结
在本教程中,我们介绍了如何在 Nginx 下正确配置 PM2,以便我们能够更好地管理我们的 Node.js 应用程序。我们还介绍了如何使用 PM2 启动多个进程,并在 Nginx 下使用反向代理处理多个进程的请求。
这将大大提高我们在生产环境中部署和管理 Node.js 应用程序的能力。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6471c418968c7c53b0fa2625