DigitalOcean Droplet 怎么部署 Node.js 应用?Nginx 反向代理怎么配置?

文章导读
在 DigitalOcean Droplet 上部署 Node.js 应用通常涉及创建 Droplet 实例、安装 Node.js 环境及 PM2 进程管理器,并配置 Nginx 作为反向代理。首先登录 Droplet,更新系统并安装 Node.js 和 Nginx。接着使用 PM2 启动 Node.js 应用确保其后台运行。最后配置 Nginx 服务器块,将特定域名的流量通过 proxy_pas
📋 目录
  1. 如何使用 Nginx 在单个 DigitalOcean droplet 上部署 React JS 和 Node.js 应用程序
  2. 如何在 DigitalOcean Droplet 上部署网站
  3. Node.js 编程实战:部署 Node.js 应用 —— Nginx 反向代理
  4. 如何在 CentOS 7 上设置 Node.js 生产应用程序
  5. FAQ
A A

在 DigitalOcean Droplet 上部署 Node.js 应用通常涉及创建 Droplet 实例、安装 Node.js 环境及 PM2 进程管理器,并配置 Nginx 作为反向代理。首先登录 Droplet,更新系统并安装 Node.js 和 Nginx。接着使用 PM2 启动 Node.js 应用确保其后台运行。最后配置 Nginx 服务器块,将特定域名的流量通过 proxy_pass 转发至 Node.js 应用监听的本地端口(如 3000),并设置必要的代理头信息以支持 WebSocket 等协议。完成配置后重载 Nginx 即可通过域名访问应用,同时建议配置防火墙和 SSL 证书以增强安全性。

如何使用 Nginx 在单个 DigitalOcean droplet 上部署 React JS 和 Node.js 应用程序

在本文中,我们将学习如何使用 Nginx 在单个 DigitalOcean droplet 上使用简单的服务器块部署 React JS 应用程序和使用反向代理服务器块的 Node.js 应用程序。使用简单服务器块在 DigitalOcean 上部署 React 应用程序 [ ](https://res.cloudinary.com/practicaldev/image/fetch/s--Qg_oCtDy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/ppgi73o2sibewh4i1pqo.jpg) 步骤 1- 登录到 DigitalOcean 并创建一个新的水滴 使用 root 访问服务器 打开您的终端并复制您的液滴的 ip\address 并在下面写下评论:sshroot@server_ip_address 进入全屏模式 退出全屏模式 现在,输入您的密码,您将登录到服务器。是时候设置防火墙了。基本防火墙设置 出于安全原因,我们必须添加一个基本的防火墙。Ubuntu 服务器使用 UFW 防火墙。设置基本防火墙是一个非常简单的过程。我们可以使用以下命令查看我们的防火墙当前允许哪些应用程序:sudo ufw app list 进入全屏模式 退出全屏模式 您应该看到以下输出:Available applications OpenSSH 进入全屏模式 退出全屏模式 我们必须通过键入以下内容来允许 SSH 连接:sudoufwallowOpenSSH 进入全屏模式 退出全屏模式 然后我们将启用防火墙:sudo ufwenable 进入全屏模式 退出全屏模式 按 y 和 ENTER。我们可以使用以下命令查看我们的防火墙状态:sudo ufw status 进入全屏模式 退出全屏模式 现在在下一步中,我们将配置域名。步骤 2 - 配置域名 在本节中,我们将配置将用于我们的 React 应用程序的域名。为此,我们必须购买一个域名 (请访问 GoDaddy 或任何其他域名提供商) 并将您的域名链接到 DigitalOcean。我们将一步一步地做到这一点。在 DigitalOcean 中,在“添加域”部分中,将您的域写为:sample.com。它不应该是 www.sample.com,然后单击添加域按钮。[ ](https://res.cloudinary.com/practicaldev/image/fetch/s--0Xe1r4lW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/afrzzzmiw40w8f2vru98.png) 之后,您必须为您的域添加 NS 记录。我们将添加两条 A 记录,将 IP4address 映射到域名。对于第一个 A 记录,在 HOSTNAME 中输入@和要指向您的域的服务器 (即:droplet), [(搜索结果收录于 2022 年 8 月 6 日)

如何在 DigitalOcean Droplet 上部署网站

步骤 1:配置 DigitalOcean Droplet 前往 DigitalOcean 网站并登录您的帐户。选择一个现有项目或启动一个新项目来托管您的 Droplet。单击“创建”按钮,然后从下拉菜单中选择"Droplets"。为了获得最佳效果,请选择距离目标受众最近的服务器位置。选择最新的 untu LTS(长期支持) 映像,它提供了可靠且良好支持的操作系统。根据应用程序的需求确定最佳 CPU 选项。例如,如果您正在运行 Next.js 应用程序,该应用程序在构建过程中需要额外的资源,您可能需要考虑 18 美元或更高的选项。选择您选择的身份验证机制,例如 SSH 密钥或密码。检查您的选项并单击“创建 Droplet"以开始配置过程。请注意,提供资源可能需要一些时间,因此在此阶段请耐心等待。第 2 步:安装依赖项 在继续部署之前,您必须确认您的服务器是最新的。要更新和升级您的服务器,请执行下面列出的命令:复制 复制 sudo apt update&&sudo apt upgrade 现在,让我们安装所需的依赖项:1.nginx:Nginx 是一个流行的用于托管网站的网络服务器。复制 复制 sudo apt install nginx 2.certbot:SSL 证书对于保护您的网站和建立访问者信心至关重要。复制 复制 sudo apt install certbot python3-certbot-nginx 3.npm 和 node:根据您的应用程序类型,您可能需要 npm 和 node。这些对于托管 Next.js 应用程序是必需的。如果您正在使用基本的 HTML 网站,则可以跳过此步骤。复制 复制 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash exec $SHELL nvm list-remote # View available versions nvm install v19.4.0# Install the desired version 4.pm2:为了有效地管理 Node.js 应用程序,我们将使用 pm2 作为进程管理器。复制 复制 npminstall -g pm2 步骤 3:配置 Nginx www.cqzlsb.com 在托管您的网站之前,您必须配置 Nginx 以确保其正常运行。让我们从防火墙配置开始。Ub 选择最新的 Ubuntu LTS(长期支持) 映像,它提供了可靠且良好支持的操作系统。(2024 年 9 月 7 日的资料)

Node.js 编程实战:部署 Node.js 应用 —— Nginx 反向代理

四、最小可用反向代理配置 假设 Node.js 服务监听在 127.0.0.1:3000。1. 创建站点配置文件 sudo nano /etc/nginx/conf.d/my-app.conf 2. 基本配置示例 server { listen 80; server_name myapp.example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } } 3. 启用配置并重载 sudo nginx -t sudo systemctl reload nginx 此时访问 http://myapp.example.com 即可看到 Node.js 应用页面。(消息于 2026 年 1 月 27 日发布)

如何在 CentOS 7 上设置 Node.js 生产应用程序

在本教程中,我们将介绍如何设置一个生产就绪的 Node.js 环境,该环境由两个 CentOS 7 服务器组成; 一台服务器将运行由 PM2 管理的 Node.js 应用程序,而另一台服务器将通过 Nginx 反向代理向用户提供对应用程序的访问权限。要完成本教程,您需要具备两台已经设置好可以使用 sudo 命令的非 root 账号的 CentOS 服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。准备 本教程使用两台带有专用网络的 CentOS 7 服务器 (在同一数据中心内)。我们将通过以下名称来引用它们:app:我们将安装 Node.js 运行时,Node.js 应用程序和 PM2 的服务器 web:我们将安装 Nginx Web 服务器的服务器,它将充当您的应用程序的反向代理。用户将访问此服务器的公共 IP 地址以访问您的 Node.js 应用程序。本教程可以使用单个服务器,但您必须在此过程中进行一些更改。只需使用 localhost IP 地址,即 127.0.0.1,在这可以使用应用服务器的私有 IP 地址。以下是按照本教程后的设置示意图:在开始本教程之前,您应该有一个在两台服务器上都配置了 sudo 权限的常规非 root 用户 - 这是您应该登录到服务器的用户。如果您能够通过域名而不是公共 IP 地址访问您的 Web 服务器,请先注册域名。让我们开始在应用服务器上安装 Node.js 运行时。安装 Node.js. 我们将在应用服务器上安装最新的 Node.js LTS 版本。在应用服务器上,让我们使用 yum 安装 git 包,这是 npm 的依赖项:代码语言:javascript AI 代码解释 sudo yum install git 转到 Node.js 下载页面,找到 Linux Binaries(.tar.gz) 下载链接。右键单击它,并将其链接地址复制到剪贴板。在撰写本文时,最新的 LTS 版本是 4.2.3。如果您希望安装最新的稳定版 Node.js,请转到相应页面并复制该链接。切换到您的主目录并下载 Node.js 源代码 wget。粘贴下载链接代替突出显示的部分:(来自 2026 年 4 月 13 日的资料)

DigitalOcean Droplet 怎么部署 Node.js 应用?Nginx 反向代理怎么配置?

FAQ

为什么要用 Nginx 做反向代理而不是直接暴露 Node.js 端口?

Nginx 处理静态文件效率更高,能提供负载均衡、SSL 终止和缓存功能,减轻 Node.js 压力并增强安全性。

PM2 在部署中起什么作用?

PM2 是 Node.js 进程管理器,可确保应用崩溃后自动重启,支持日志管理和集群模式,保证生产环境稳定性。