
这个Nginx反向代理示例使用Tomcat作为源服务器,但任何后端服务器,如Node,Jetty或WebSphere都可以工作。
Nginx反向代理设置的好处是什么?
使用Nginx作为反向代理的好处包括:
- 客户端通过单个Web地址访问所有后端资源。
- 反向代理可以提供静态内容,这减少了Express等应用服务器上的负载,Tomcat或WebSphere。
- Nginx反向代理可以通过保护后端资源的防火墙进行导航。
- 反向代理可以充当高速缓存或缓冲器以减少延迟。
- 通过对站点的单点访问,用户访问控制大大简化。
Nginx反向代理配置步骤
按照以下步骤设置和配置您自己的Nginx反向代理服务器:
- 在Windows或Linux服务器上安装Nginx(先决条件)。
- 添加Nginx代理通行证 在虚拟主机或默认配置文件中设置。
- 将上下文根映射到后端服务器的URL。
- 可选地,设置Nginx反向代理的头部以用于后端。
- 重新启动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代理应用程序 的上下文根/示例.

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反向代理示例将/示例 指向Apache Tomcat服务器的URI。
这就是在Ubuntu上配置和设置Nginx反向代理的简单程度。