1. 代理对象不同
正向代理:代理的是客户端。
客户端通过正向代理服务器访问目标服务器,从而实现对外部网络的间接访问。
它的核心作用是“代理客户端”,帮助客户端隐藏真实身份、突破访问限制或者实现上网行为的控制。
如下图所示:
举例:用户想访问某些被屏蔽的网站,比如:“Google.com”。
在本地配置了正向代理服务器,客户端请求先发送到代理服务器,再由代理服务器发起请求到目标服务器,最终将响应返回给客户端。
因此,正向代理的客户群体是请求发起者(客户端),代理服务器是客户端的“门面”。
反向代理:代理的是服务器端。
反向代理代表服务器处理请求,客户端实际上只知其代理服务器的地址,不知道后端真实的应用服务器。
反向代理服务器隐藏了真实服务器信息,代理的是服务器资源。
对目标服务器的感知不同
正向代理,目标服务器不知道客户端使用了代理,它只知道请求来自代理服务器的 IP 地址。
而反向代理 ,客户端不知道自己访问的是代理服务器后面的真实服务器集群,它只认为自己是在与反向代理服务器交互。
举例:用户访问某大型网站时,请求首先落在配置反向代理的Nginx服务器,Nginx根据负载均衡策略选择后端某台Web服务器响应请求,将响应传回用户。
3. 主要应用场景不同
正向代理的主要用途:访问控制和过滤。
比如企业或学校限制网络访问,需通过正向代理实现行为监管。
绕过地域网络限制访问被屏蔽内容,比如:Google.com。
隐藏客户端IP,实现匿名访问。
反向代理的主要用途:负载均衡,分发客户端请求至多台后端服务器,提高系统并发处理能力。
网站加速,如缓存静态内容,提升响应速度。
提升安全性,屏蔽真实业务服务器,防止直接攻击和暴露内部架构。
统一入口,便于管理和扩展。
4. 配置方式和Nginx支持差异
正向代理,通常需要在客户端进行配置,例如:在浏览器、操作系统、或应用程序中设置代理服务器的 IP 地址/和端口。
反向代理,配置在服务器端,即在 Nginx 服务器上配置监听端口、代理规则以及后端服务器的地址等。
客户端无需进行任何特殊配置,像访问普通 Web 服务器一样访问反向代理服务器即可。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!

后台回复【架构】即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》