面向前端开发人员的 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