在 Ubuntu 16.04 上使用 PM2 和 Nginx 部署 Node.js 应用程序

随着 Node.js 技术的普及,越来越多的开发者和企业开始选择使用 Node.js 来开发和部署后端应用程序。但是,随之而来的问题是如何部署和管理这些应用程序,特别是在生产环境中。在这篇文章中,我们将深入分析在 Ubuntu 16.04 上使用 PM2 和 Nginx 部署 Node.js 应用程序的方法和步骤,以便开发者可以更好地理解如何高效管理和部署 Node.js 应用程序。

准备工作

在开始使用 PM2 和 Nginx 部署 Node.js 应用程序之前,需要准备一些必要的工具和环境:

  • 一台运行 Ubuntu 16.04 操作系统的服务器
  • 安装 Node.js 和 npm
  • 安装 PM2
  • 安装 Nginx

在这里,我们不会深入讲解如何安装 Node.js 和 npm,读者可以通过官方文档或者其他教程进行学习和安装。本文暂不提供示例代码。

安装 PM2

安装 PM2 非常简单,只需使用 npm 即可完成:

安装完成后,您可以通过以下命令来验证是否安装成功:

如果一切正常,您应该会看到 PM2 的版本号输出。

安装 Nginx

安装 Nginx 也非常简单,只要执行以下命令即可:

安装完成后,您可以通过以下命令来验证是否安装成功:

如果一切正常,您应该会看到 Nginx 的版本号输出。

部署 Node.js 应用程序

在准备工作完成后,我们可以开始部署 Node.js 应用程序了。在这里,我们将以一个简单的 Node.js 应用程序为例,假设这个应用程序的代码位于 /var/www/node-app 目录下。

使用 PM2 启动 Node.js 应用程序

使用 PM2 启动 Node.js 应用程序非常简单,只需要进入应用程序所在的目录,然后执行以下命令即可:

其中,app.js 是 Node.js 应用程序的入口文件,您可以根据实际情况进行修改。

这样,您就成功启动了 Node.js 应用程序,并且可以通过以下命令来查看它的状态:

如果一切正常,您应该可以看到一个名为 app 的进程,状态为 online

配置 Nginx 反向代理

使用 PM2 启动 Node.js 应用程序后,我们需要使用 Nginx 来反向代理请求。为了实现这个目的,我们需要配置 Nginx 的反向代理规则。

打开 Nginx 的配置文件 /etc/nginx/sites-available/default,然后编辑它:

server 部分添加以下代码:

保存并关闭文件后,重启 Nginx 服务:

现在,您可以通过访问服务器的 IP 地址或者域名,来访问您的 Node.js 应用程序了。如果一切正常,您应该可以看到您的应用程序已经成功部署并正常运行了。

使用 PM2 配置自动启动

现在,您通过 PM2 和 Nginx 成功部署了 Node.js 应用程序,但是如果服务器重新启动,您仍然需要手动启动应用程序。为此,我们可以使用 PM2 的自动启动功能,使得您的应用程序可以在服务器重启后自动启动。

使用 PM2 配置自动启动非常简单,只需要执行以下命令即可:

执行完上述命令后,您会看到一些输出信息,包含一个类似于 sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username 的命令。将这个命令复制到终端中,然后执行它:

其中,username 是 Linux 系统中的用户名,您需要将其替换成实际的用户名。

运行完这个命令后,您就成功配置了 PM2 的自动启动功能。

总结

使用 PM2 和 Nginx 部署 Node.js 应用程序非常简单,但是常常还需要考虑到安全、性能和可靠性等方面的问题。在实际的生产环境中,开发者和企业需要综合考虑各种因素,选择合适的部署方案和工具,并进行一定的优化和调试,以提供更高效、可靠、安全的 Node.js 应用程序服务。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6545f3397d4982a6ebfaaadf


纠错
反馈