面向前端开发人员的 Nginx - 超越基础知识

2025-06-05

面向前端开发人员的 Nginx - 超越基础知识

本文是《面向前端开发人员的 Nginx》的后续文章。现在,我们将看到超越基础的面向前端开发人员的 Nginx

在上一篇文章,我们为一个 Web 应用程序设置了基本的 nginx 配置。在本文中,我们将了解如何设置 nginx 的一些重要功能 - Proxy Pass,即反向代理

什么是代理?

在讨论反向代理之前,我们先来了解一下代理的含义。代理只不过是处理请求并将其转发到适当的源/目标。

代理服务器有两种方式:正向代理反向代理

正向代理服务器

正向代理为客户端或客户端组提供代理服务。当客户端请求服务器时,正向代理服务器接受请求并将其发送到应用服务器。

从应用服务器的角度来看,它是请求文件的代理服务器。它不知道哪个客户端请求了文件。这是正向代理服务器的优势。

如您所见,代理可以作为单一访问和控制点,使您更容易实施安全策略。

反向代理服务器

反向代理与正向代理正好相反。正向代理代表客户端(或发出请求的主机)进行代理,而反向代理则代表服务器进行代理。反向代理代表位于其后的服务器接受来自外部客户端的请求。 

从客户端来看,它是提供文件的反向代理。它不知道哪个服务器提供该文件。

Nginx 中的反向代理设置

我们将看到如何在 nginx 中设置代理传递(即反向代理)。

首先,确保你的机器上安装了 nginx。要了解如何安装 nginx,请参阅 Nginx 安装

之后,您可以在以下目录中找到 nginx 配置。有两个目录对于 nginx 配置很重要。

  • sites-available - 文件夹用于存储 所有 vhost 配置,无论它们当前是否启用。
  • sites-enabled - 文件夹包含指向 sites-available 文件夹中文件的符号链接。这允许您通过删除符号链接来选择性地禁用虚拟主机。

我们将部署一个 node.js 应用程序并将请求代理传递给具有特定端口的应用程序。

完整源代码:Nginx 演示

首先,我们需要在没有 nginx(代理传递)的情况下运行应用程序,然后我们将看到如何使用 nginx 运行应用程序(我们不需要每次都提及PORT

下载应用程序的源代码并使用以下命令在本地运行。

同时,如果您在浏览器中运行http://localhost:3000 ,您将看到应用程序成功运行。

应用程序现已成功运行。现在,您需要配置 nginx,使应用程序在运行时无需指定端口(代理传递)。

主要是我们需要在sites-available中添加应用程序配置,并将符号链接添加到sites-enabled

在node-app配置文件中添加以下代码

server {

     listen 80;

      location / {

          proxy_pass "http://127.0.0.1:3000";

       }
}

之后,在终端中运行以下命令

 $ sudo ln -s /etc/nginx/sites-available/node-app /etc/nginx/sites-enabled/

之后,您需要启动nginx服务。运行以下命令启动服务器。

$  sudo /etc/init.d/nginx start 

最后,您可以在http://localhost中运行该应用程序。太棒了!!!!

在下一篇文章中,我们将了解如何在 Nginx 中实现负载平衡。在此之前,祝您编码愉快!

阅读第一部分,面向前端开发人员的 Nginx

文章来源:https://dev.to/ganeshmani/nginx-for-front-end-developers-beyond-the-basics-2ief
PREV
面向 Node.js 开发人员的 PM2
NEXT
在 Node.js 中实现作业调度程序