如何在 Ubuntu 上使用 Nginx 反向代理托管 Web 应用程序如何在 Ubuntu 上使用 Nginx 反向代理托管 Web 应用程序如何在 Ubuntu 上使用 Nginx 反向代理托管 Web 应用程序如何在 Ubuntu 上使用 Nginx 反向代理托管 Web 应用程序
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Ubuntu 上使用 Nginx 反向代理托管 Web 应用程序

发表 admin at 2025年2月28日
类别
  • 未分类
标签
月額480円〜の高速レンタルサーバー ColorfulBox

作为拥有超过 10 年 Linux 系统工作经验的人,我可以说使用 Nginx 设置反向代理是处理 Web 应用程序流量的最常见、最有效的方法之一。

反向代理充当中间服务器,将客户端请求转发到适当的后端服务器,它是负载平衡、安全性和性能的重要工具。

在本指南中,我将引导您完成在 Ubuntu 24.04 上将 Nginx 配置为反向代理的步骤,以及在 Nginx 后面托管简单 Web 应用程序的示例。

先决条件

在我们开始之前,请确保您具备以下条件:

  • Ubuntu 24.04 服务器已启动并正在运行(您可以使用 VPS 或物理服务器)。
  • 用于执行系统管理任务的 root 或 sudo 权限。
  • 在后端服务器上运行的示例 Web 应用程序(我们将在本示例中使用基本的 Node.js 应用程序)。
  • Linux 命令和网络概念的基础知识。

步骤1:在Ubuntu 24.04上安装Nginx

首先,我们需要使用以下命令从默认 Ubuntu 存储库安装 Nginx Web 服务器。

sudo apt update
sudo apt install nginx

安装完成后,您可以检查 Nginx 的状态以确保其正在运行:

sudo systemctl status nginx

如果 Nginx 未运行,请使用以下命令启动它:

sudo systemctl start nginx

确保 Nginx 在启动时自动启动:

sudo systemctl enable nginx

如果您的服务器上启用了 UFW 防火墙,请确保允许 HTTP(端口 80)流量。

sudo ufw allow 'Nginx Full'
sudo ufw enable

第 2 步:设置您的后端 Web 应用程序

在此示例中,我们将使用一个简单的 Node.js 应用程序作为后端服务器,它将侦听端口 3000。

首先,在您的服务器上安装 Node.js 和 npm:

sudo apt install nodejs npm

现在,让我们创建一个简单的 Node.js Web 应用程序:

sudo mkdir /var/www/myapp
cd /var/www/myapp

初始化 Node.js 应用程序:

sudo npm init -y

安装 Express,一个用于 Node.js 的简单 Web 框架:

sudo npm install express

在 /var/www/myapp 目录中创建一个 app.js 文件,其中包含以下内容:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello, this is a backend app!');
});

app.listen(port, () => {
  console.log(`App running on http://localhost:${port}`);
});

启动您的 Node.js 应用程序。

sudo node app.js

您的后端 Web 应用程序现在正在 http://localhost:3000 上运行,您可以通过导航到浏览器中的以下地址来验证这一点,并且您应该看到“您好,这是后端应用程序!”消息。

http://your-server-ip:3000

步骤 3:将 Nginx 配置为反向代理

现在,让我们配置 Nginx 将来自外界的请求转发到在端口 3000 上运行的 Node.js 后端。

首先,在 sites-available 目录中创建一个新的配置文件:

sudo nano /etc/nginx/sites-available/myapp

在新文件中,添加以下配置以告诉 Nginx 将传入的 HTTP 请求转发到在端口 3000 上运行的后端服务器:

server {
    listen 80;
    server_name your_domain_or_ip; location / { proxy_pass http://localhost:3000; # Forward requests to your backend server proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }

保存配置后,创建指向 sites-enabled 目录的符号链接以启用此配置:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/

在重新启动 Nginx 之前确保不存在语法错误非常重要:

sudo nginx -t
sudo systemctl restart nginx

现在,打开浏览器并导航到服务器的公共 IP 地址或域(例如,http://your-server-ip 或 http://your_domain)。

您应该看到消息“Hello,这是一个后端应用程序!”,这意味着 Nginx 已成功将请求转发到您的后端 Node.js 应用程序。

对于安全连接,您可以使用 Let’s Encrypt 配置 SSL。

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain_or_ip
结论

在本指南中,我们将 Nginx 配置为反向代理,以将 HTTP 请求转发到在 localhost:3000 上运行的后端 Node.js Web 应用程序Ubuntu 24.04 服务器。

通过执行这些步骤,您已经了解了 Nginx 反向代理的基本概念以及如何在 Nginx 后面托管简单的 Web 应用程序。通过此设置,您可以轻松地将其扩展到更复杂的应用程序,并根据需要扩展您的基础设施。

©2015-2025 Norria support@alaica.com