在现代 Web 应用程序开发中,创建可扩展的 Restful API 已变得非常普遍。Node.js 是一个强大且具有高性能和可扩展性的平台,可以很方便地创建 Restful API。但是,当你需要将它们部署到生产环境中时,需要一些更高级的工具来确保可靠性、可扩展性和性能。在这篇文章中,我们将介绍如何使用 PM2 和 Node.js 创建和管理可扩展的 Restful API。
什么是 PM2?
PM2 是一个现代化的进程管理器,可以用于管理 Node.js 应用程序。它支持多款操作系统和云平台,并且提供了多种有用的功能,例如自动重启、日志记录、监控、负载均衡和热加载等。PM2 的最大好处在于它可以处理多个进程并行运行,使得应用程序具有更好的可靠性和性能。
建立一个简单的 Restful API
在这个例子中,我们将创建一个简单的 Restful API,它会返回当前时间戳。我们将使用 Express 框架来创建 API 端点。
首先,我们需要一个新的 Node.js 项目。在命令行中,输入以下命令:
----- ----------- -- ----------- --- ---- -- --- ------- -------
接下来,我们需要创建一个名为 server.js 的文件,并添加以下代码:
----- ------- - ------------------ ----- --- - --------- ------------ ----- ---- -- - ----------------- ---------- ----- ------------------- -- ----- ---- - ---------------- -- ---- ---------------- -- -- - ------------------- --------- -- ---- --------- --
以上代码使用 Express 创建了一个 API 端点,它将返回当前时间戳。我们将在端口号 3000 上监听请求,并在控制台输出一条消息表明服务器已启动。
用 PM2 启动 Restful API
要使用 PM2 启动 Node.js 应用程序,我们需要全局安装 PM2:
--- ------- --- --
接下来,在命令行中运行以下命令:
--- ----- ---------
这将启动我们的 Restful API,并将它放在后台运行。我们可以通过运行以下命令来查看正在运行的 PM2 进程:
--- ----
用 PM2 监视和重启 Restful API
一个好的进程管理器应该具有监视和自动重启功能。我们可以使用 PM2 来设置这些功能:
--- ----- --------- ------- ----------------------------- --------------------
该命令将启动我们的 Restful API,并负责监视我们的代码更改,并在发生更改时自动重启服务器。我们还创建了一个名为“restful-api”的进程,以便稍后更容易地进行区分。
如果你要更改代码并保存文件,PM2 将自动检测到更改并重新启动进程。我们可以通过运行以下命令来查看实时日志:
--- ---- -----------
PM2 还可以设置自动重启服务器的策略,例如在进程崩溃、内存使用过高或请求响应时间过长时。以下是一个例子:
--- ----- --------- -------------------- --- ----- ----------
该命令将重启进程,如果它消耗超过 50MB 的内存,并使用生产环境变量。
用 Nginx 配置 Restful API 的反向代理
在生产环境中,我们通常会使用 Nginx 进行反向代理来处理负载均衡和安全性等问题。让我们假设我们有一个名为 api.example.com 的域名。我们将使用 Nginx 来将请求代理到我们的 Restful API 上。
首先,我们要安装 Nginx:
---- ------- ------ ---- ------- ------- -----
接下来,我们要在 Nginx 中设置我们的反向代理。在 /etc/nginx/sites-available/ 目录下创建一个名为 api.example.com 的配置文件:
---- ---- ------------------------------------------
然后在文件中添加以下内容:
------ - ------ --- ------ -------- ----------- ---------------- -------- - - ---------- ---------------------- ------------------ ---- ---------------- ------- -------------- ---------------- ---------- ---------- - -
这将使 Nginx 代理到 127.0.0.1:3000,并将 HTTP 版本设置为 1.1。它还将设置升级头和连接头,以允许 WebSocket 建立连接。
接下来,启用我们的新网站的配置:
---- -- -- ------------------------------------------ -------------------------
最后,重新启动 Nginx:
---- ------- ----- -------
现在,我们可以使用我们的网站 api.example.com 来访问我们的 Restful API 端点了。
结论
在本文中,我们讨论了如何使用 PM2 和 Node.js 创建可扩展的 Restful API。我们了解了 PM2 的功能,以及如何使用它来启动、监视和重启我们的 Node.js 应用程序。我们还通过 Nginx 设置了反向代理,以便我们的 Restful API 可以扩展到一个具有高可用性和安全性的生产环境中。如果您正在创建一个 Restful API,并且想要将它发布到生产环境中,请考虑使用这些工具来帮助您创建一个可靠、可扩展和高性能的系统。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67355d7d0bc820c5824e02e8