如何设置Nginx反向代理服务器示例

如何设置Nginx反向代理服务器示例

大多数企业架构使用单个反向代理服务器来处理所有传入的请求。然后代理服务器检查每个HTTP请求并识别哪个后端系统,无论是Apache,Tomcat,Express还是NodeJS服务器,都应该处理请求。然后,反向代理将请求转发到该服务器,允许处理该请求,从该后端服务器获得响应,然后将响应发送回客户端。配置为反向代理的Nginx服务器提供此功能。

如何设置Nginx反向代理服务器示例-美联科技

这个Nginx反向代理示例使用Tomcat作为源服务器,但任何后端服务器,如Node,Jetty或WebSphere都可以工作。

Nginx反向代理设置的好处是什么?

使用Nginx作为反向代理的好处包括:

  • 客户端通过单个Web地址访问所有后端资源。
  • 反向代理可以提供静态内容,这减少了Express等应用服务器上的负载,Tomcat或WebSphere。
  • Nginx反向代理可以通过保护后端资源的防火墙进行导航。
  • 反向代理可以充当高速缓存或缓冲器以减少延迟。
  • 通过对站点的单点访问,用户访问控制大大简化。

Nginx反向代理配置步骤

按照以下步骤设置和配置您自己的Nginx反向代理服务器:

  1. 在Windows或Linux服务器上安装Nginx(先决条件)。
  2. 添加Nginx代理通行证 在虚拟主机或默认配置文件中设置。
  3. 将上下文根映射到后端服务器的URL。
  4. 可选地,设置Nginx反向代理的头部以用于后端。
  5. 重新启动Nginx反向代理并测试反向代理设置。

安装Nginx

在Ubuntu上,安装最新版本的Nginx。执行apt-get更新 和/或apt-get升级 命令,后跟apt-get install 命令

sudo apt-获取更新-y
正在阅读包列表...完成
sudo apt-get upgrade -y
正在计算升级...完成
sudo apt-get install nginx -y
以下Nginx包将安装在Ubuntu 22上:
libnginx-mod-http-geoip2 nginx-common nginx-core nginx-proxy
安装nginx 1.18 ubuntu 22... Done

如何验证Nginx安装?

执行尽职调查并检查Nginx服务器安装是否成功。

状态检查应该表明Nginx处于活动状态。

sudo systemctl status nginx
● nginx - 一个高性能的web,http和反向代理服务器
   Loaded:loaded(/lib/systemd/system/nginx.service;enabled;)
   有效: active(Nginx服务器运行)

添加Nginx proxy_pass设置

Nginx反向代理配置中最重要的配置步骤是添加代理通行证 将传入URL映射到后端服务器的设置。

在这个Nginx反向代理示例中,我们假设Apache Tomcat服务器在端口8080的本地主机上运行,并且我们需要Nginx代理应用程序 的上下文根/示例.

如何设置Nginx反向代理服务器示例-美联科技

proxy_pass设置使Nginx反向代理设置工作。

该代理通行证 在任何虚拟主机配置文件的位置部分配置。要设置Nginx代理通行证 全局,编辑默认值 Nginx中的文件网站-可用 文件夹

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

Nginx proxy_pass示例

对于本例,我们设置Nginx反向代理的位置映射,以转发任何具有/示例 在指向运行在端口8080上的Apache Tomcat服务器的URI中:

#nginx反向代理映射示例
# /etc/nginx/sites-available/default
区位/示例 {
  代理_通行证http://localhost:8080/示例;
}

设置Nginx代理头值

默认情况下,Nginx将自己的IP地址中继到反向代理目标。

要让Nginx中继发出原始请求的客户端的IP地址、主机和端口信息,可以设置代理集标头 价值观

此外,Nginx缓冲数据以帮助管理繁重的工作负载,但这对于需要尽可能低延迟的应用程序来说可能是不可取的。代理缓冲 关闭用于Nginx反向代理配置。

这个Nginx反向代理示例关闭缓冲,同时为处理代理请求的后端服务器设置客户端头:

#示例nginx反向代理配置文件
# /etc/nginx/sites-available/default
区位/示例 {
  代理通行证 http://localhost:8080/examples;
  代理缓冲 关闭;
  代理集标头 X-Real-IP $remote_addr;
  代理集标头 X-Forwarded-Host $host;
  代理集标头 X-Forwarded-Port $server_port;
}

添加这些Nginx代理传递,代理缓冲 和/或代理集标头 更新到默认配置文件并保存更改。

重新启动Nginx作为反向代理

要查看Nginx作为反向代理的功能,只需重新启动服务器以加载新配置。

sudo systemctl restart nginx

当服务器上线后,尝试通过Nginx反向代理访问后端服务器。在这个例子中,我们可以通过Nginx访问运行在8080端口上的Tomcat服务器。

http://localhost/示例 --代理--〉 http://localhost:8080/例

Nginx反向代理转发充当Tomcat上示例应用程序的所有请求的单一入口点。这证明Nginx反向代理配置设置是成功的。

如何设置Nginx反向代理服务器示例-美联科技

Nginx反向代理示例将/示例 指向Apache Tomcat服务器的URI。

这就是在Ubuntu上配置和设置Nginx反向代理的简单程度。

客户经理