Nginx反向代理大型网站必备的,也是大厂经常考察的,下面我就全面来详解Nginx反向代理原理@mikechen
最新mikechen原创超30万字《阿里架构师进阶专题合集》,请关注本公众号【mikechen的架构笔记】,后台回复:架构,即可领取。
正向代理
如果要搞透Nginx反向代理,你有必要先搞懂正向代理,理解清楚了正向代理,更容易理解反向代理。
正向代理:就是客户端将请求发送给正向代理服务器,代理服务器再将请求转发给目标服务器,获取响应后返回给客户端。
举一个例子:正向代理,就像你雇佣了一个中间人去帮你取东西。
比如:你要访问(google.com
),我们需要一个代理服务器,我们通过代理服务器去访问谷歌,这个过程就是正向代理。
如下图所示:
这个过程中,Google 服务器认为是“代理服务器”在访问它,而并不知道背后的真实访问者是你。
换句话说,正向代理屏蔽了真实客户端的信息,它充当客户端和目标服务器之间的“中间人”。
反向代理
搞清楚了“正向代理”后,下面我再来谈谈反向代理。
反向代理(Reverse Proxy),同样是一个位于客户端、和目标服务器之间的中间服务器。
反向代理作用对象和服务目标,与正向代理相反。
正向代理,是为了客户端能够访问到它想访问的服务器,隐藏的是客户端自身。
反向代理是为了保护和优化后端服务器,隐藏的是后端服务器的真实信息。
如下图所示:
客户端向反向代理服务器发送请求,反向代理服务器根据配置将请求转发给后端的真实服务器,并将后端服务器的响应返回给客户端。
客户端不知道后端真实服务器的存在,只与反向代理服务器交互。
采用了反向代理,有啥好处呢?
包含:
- 增强安全性:
隐藏后端服务器真实 IP 和拓扑,抵御恶意攻击。 - 实现负载均衡:
将请求分发到多台后端服务器,提高系统可用性和性能。 - 提供缓存加速:
缓存静态内容,减轻后端服务器压力,提升响应速度。 - 统一访问入口:
将多个后端服务通过单一域名和端口暴露,简化用户访问。
Nginx反向代理
Nginx 工作在网络的“入口”层,它会根据配置规则来决定如何转发请求。
基本流程如下:
客户端发起请求到 Nginx;
Nginx 根据请求路径、域名等进行匹配;
将请求转发到后端真实服务器(upstream)。
获取响应后返回给客户端。
以下是一个基本的反向代理配置示例:
前端访问 mikechen.cc,请求交由 Nginx 分发给三台 Java 服务实例。
真实客户端 IP 被保留,可用于日志、权限控制等。
以上

優(yōu)網(wǎng)科技秉承"專業(yè)團隊、品質(zhì)服務" 的經(jīng)營理念,誠信務實的服務了近萬家客戶,成為眾多世界500強、集團和上市公司的長期合作伙伴!
優(yōu)網(wǎng)科技成立于2001年,擅長網(wǎng)站建設、網(wǎng)站與各類業(yè)務系統(tǒng)深度整合,致力于提供完善的企業(yè)互聯(lián)網(wǎng)解決方案。優(yōu)網(wǎng)科技提供PC端網(wǎng)站建設(品牌展示型、官方門戶型、營銷商務型、電子商務型、信息門戶型、微信小程序定制開發(fā)、移動端應用(手機站、APP開發(fā))、微信定制開發(fā)(微信官網(wǎng)、微信商城、企業(yè)微信)等一系列互聯(lián)網(wǎng)應用服務。