-
Nginx反向代理原理详解(图文全面总结)
- 网站名称:Nginx反向代理原理详解(图文全面总结)
- 网站分类:技术文章
- 收录时间:2025-07-27 15:13
- 网站地址:
“Nginx反向代理原理详解(图文全面总结)” 网站介绍
大家好,我是mikechen。
Nginx反向代理大型网站必备的,也是大厂经常考察的,下面我就全面来详解Nginx反向代理原理@mikechen
本文作者:mikechen
文章来源:mikechen.cc
正向代理
如果要搞透Nginx反向代理,你有必要先搞懂正向代理,理解清楚了正向代理,更容易理解反向代理。
正向代理:就是客户端将请求发送给正向代理服务器,代理服务器再将请求转发给目标服务器,获取响应后返回给客户端。
举一个例子:正向代理,就像你雇佣了一个中间人去帮你取东西。
比如:你要访问(google.com),我们需要一个代理服务器,我们通过代理服务器去访问谷歌,这个过程就是正向代理。
如下图所示:
这个过程中,Google 服务器认为是“代理服务器”在访问它,而并不知道背后的真实访问者是你。
换句话说,正向代理屏蔽了真实客户端的信息,它充当客户端和目标服务器之间的“中间人”。
反向代理
搞清楚了“正向代理”后,下面我再来谈谈反向代理。
反向代理(Reverse Proxy),同样是一个位于客户端、和目标服务器之间的中间服务器。
反向代理作用对象和服务目标,与正向代理相反。
正向代理,是为了客户端能够访问到它想访问的服务器,隐藏的是客户端自身。
反向代理是为了保护和优化后端服务器,隐藏的是后端服务器的真实信息。
如下图所示:
客户端向反向代理服务器发送请求,反向代理服务器根据配置将请求转发给后端的真实服务器,并将后端服务器的响应返回给客户端。
客户端不知道后端真实服务器的存在,只与反向代理服务器交互。
采用了反向代理,有啥好处呢?
包含:
- 增强安全性:
- 隐藏后端服务器真实 IP 和拓扑,抵御恶意攻击。
- 实现负载均衡:
- 将请求分发到多台后端服务器,提高系统可用性和性能。
- 提供缓存加速:
- 缓存静态内容,减轻后端服务器压力,提升响应速度。
- 统一访问入口:
- 将多个后端服务通过单一域名和端口暴露,简化用户访问。
Nginx反向代理
Nginx 工作在网络的“入口”层,它会根据配置规则来决定如何转发请求。
基本流程如下:
- 客户端发起请求到 Nginx;
- Nginx 根据请求路径、域名等进行匹配;
- 将请求转发到后端真实服务器(upstream)。
- 获取响应后返回给客户端。
以下是一个基本的反向代理配置示例:
http { upstream backend_servers { server 127.0.0.1:8081; server 127.0.0.1:8082; server 127.0.0.1:8083; } server { listen 80; server_name mikechen.cc; location / { proxy_pass http://backend_servers; # 保留客户端真实 IP 信息 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 优化连接 proxy_http_version 1.1; proxy_set_header Connection ""; # 设置超时时间 proxy_connect_timeout 10; proxy_read_timeout 30; } }}
前端访问 mikechen.cc,请求交由 Nginx 分发给三台 Java 服务实例。
真实客户端 IP 被保留,可用于日志、权限控制等。
以上
本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。
更多相关网站
- 126A打印提示系统不支持请求的命令 解决方案3
- msf提权漏洞利用最全总结(msf mysql提权)
- webview 渲染机制:硬件加速方式渲染的Android Web
- 轻松查询证书报告,一键安装!(查询证书信息)
- ASP.NET Core Blazor 的部署(asp.net core autofac)
- AutoDev × MCP 双向赋能:AutoDev 即 MCP 服务,MCP 服务即 AutoDev 指令
- Rocky Linux 9.x 从零安装 Nginx 全流程:源码编译 + dnf 安装方案详解
- 重定向流量通道窃取数据!拥有完美的伪装和传播渠道
- Code Review:提升代码质量与团队能力的利器
- 浅谈字节码增强技术系列1-字节码增强概览
- btrace 开源!基于 Systrace 高性能 Trace 工具
- 如何一眼定位SQL的代码来源:一款SQL染色标记的简易MyBatis插件
- 安利一款免费、开源、实时的服务器监控工具:Netdata
- 搭建自己的聊天室平台、公司内部聊天平台,Rocket.Chat搭建使用
- Nginx权威教程(万字图文总结)(nginx简书)
- 腾讯云搭建Socks5多IP代理服务器实现游戏单窗口单IP完美搭建教程
- Nginx高性能最全详解:如何提高10倍性能!
- Nginx如何限流扛住高并发请求?(nginx 并发限流)
- 最近发表
-
- 全能硬件大师AIDA64 v4.60 最新绿色版下载
- 实用神帖 隔壁老王买到iPhone 6魔改6s,怎么破?
- DIY装机小白的618配机历程(3千元的146K,DDR5无卡方案)2025
- AIDA64 7.30版本发布:改善深色/高对比度模式
- DIY从入门到放弃:CPU没有SN码是保护你
- 硬件大师AIDA64 5.60.3716更新下载:“认准”Win10
- 没有最丐,只有更丐!新版AIDA64证实AMD将发布Radeon RX 7300
- 必上 AMD新BIOS给第三代锐龙加油(amd第三代锐龙apu)
- 拒绝大块头和全家桶 个性监控小软件了解下
- AMD Zen 6和英特尔Wildcat Lake获得AIDA64最新版本支持
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 二调符号库 (23)
- acmecadconverter_8.52绿色版 (25)
- 梦幻诛仙表情包 (36)
- 魔兽模型 (23)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- parsevideo (22)
- centos7.4下载 (32)
- cuda10.1下载 (22)
- intouch2014r2sp1永久授权 (33)
- usb2.0-serial驱动下载 (24)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- virtualdrivemaster (26)
- 数据结构c语言版严蔚敏pdf (25)
- 兔兔工程量计算软件下载 (27)
- 代码整洁之道 pdf (26)
- ccproxy破解版 (31)
- aida64模板 (28)