PM2 在 Nginx 下的配置指南

阅读时长 5 分钟读完

简介

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 的部署和运行。

-- -------------------- ---- -------
-- ---------

----- ---- - ----------------

----- ------ - ----------------------- ---- -- -
  ------------------ ---------------- ---------------
  -------------- ----------
---

------------------- -- -- -
  ------------------- -- --------- -- ---- -------
---

保存并(在终端)运行它:

如果一切正常,你应该可以用浏览器访问 http://localhost:3000 并看到 "Hello World"。

步骤 2:使用 PM2 运行 Node.js 应用程序

接下来,我们将使用 PM2 来运行我们的 Node.js 应用程序。

首先安装 PM2:

然后,在终端进入 Node.js 应用程序目录并运行以下命令:

这将启动你的 Node.js 应用程序并将它作为一个后台服务。你可以使用 pm2 list 命令来查看它是否正在运行。

步骤 3:使用 Nginx 反向代理请求

现在我们已经可以通过 PM2 启动 Node.js 应用程序了,接下来将我们的 Node.js 应用程序暴露给外部网络请求。

首先打开 Nginx 配置文件:

然后找到 http 节点,在其中添加以下配置:

-- -------------------- ---- -------
------ -
    ------ ---
    ----------- ----------

    -------- - -
        ---------- ----------------------
        ------------------ ----
        ---------------- ------- --------------
        ---------------- ---------- ----------
        ---------------- ---- ------
        ------------------ --------------
    -
-

这将使 Nginx 代理所有来自 localhost:80 的请求,并将它们转发到 localhost:3000 (即我们的 Node.js 应用程序)。

重启 Nginx 使配置生效:

然后,你可以使用浏览器通过 http://localhost 访问你的应用程序了。

步骤 4:使用 PM2 启动多个进程

最后,我们来介绍一下如何使用 PM2 启动多个进程,以便我们可以更好地管理我们的应用程序。

假设我们的服务器性能可以承受 2 个 Node.js 进程。我们可以运行以下命令来启动两个进程:

这将启动两个进程,每个进程都分别监听不同的端口号。你可以在终端中使用 pm2 list 命令查看两个进程的状态。

然后,我们需要更新 Nginx 配置文件,使其能够正确地接受来自多个进程的请求:

-- -------------------- ---- -------
-------- -------- -
    ------ ---------------
    ------ ---------------
-

------ -
    ------ ---
    ----------- ----------

    -------- - -
        ---------- ----------------
        ------------------ ----
        ---------------- ------- --------------
        ---------------- ---------- ----------
        ---------------- ---- ------
        ------------------ --------------
    -
-

这将使 Nginx 代理多个进程,并将它们作为一个整体处理请求。

重启 Nginx 使配置生效:

然后你就可以使用浏览器访问你的应用程序了。Nginx 将自动处理请求,将它们发送到两个进程中的任意一个。

总结

在本教程中,我们介绍了如何在 Nginx 下正确配置 PM2,以便我们能够更好地管理我们的 Node.js 应用程序。我们还介绍了如何使用 PM2 启动多个进程,并在 Nginx 下使用反向代理处理多个进程的请求。

这将大大提高我们在生产环境中部署和管理 Node.js 应用程序的能力。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6471c418968c7c53b0fa2625

纠错
反馈