一、代理(Proxy)

定义:一种网络中介角色,代表客户端或服务器处理网络请求与响应,可对通信内容进行转发、过滤、缓存等操作。简言之,代理就是中间商、中介、跳板。
核心作用

  • 隐藏真实身份:客户端或服务器通过代理与目标通信,隐藏自身 IP 等信息。
  • 突破网络限制:访问被屏蔽的内容(如特定地区的网站)。
  • 提高效率:通过缓存减少重复请求,加快响应速度。
  • 安全防护:过滤恶意请求,降低直接攻击风险。

二、正向代理(Forward Proxy)

定义代表客户端向服务器发送请求的代理服务器。客户端明确配置使用正向代理,代理服务器根据请求转发至目标服务器,再将响应返回给客户端,俗称“梯子”。

典型场景

  • 访问国外网站:用户通过正向代理突破地域限制(如使用 VPN 访问 YouTube)。
  • 企业内网访问外部资源:员工通过公司代理服务器访问互联网,隐藏内网 IP。

工作流程

  1. 客户端向正向代理发送请求(如访问google.com)。
  2. 代理服务器接收请求,根据配置转发至目标服务器google.com。
  3. 目标服务器返回响应至代理,代理再将内容转发给客户端。

特点

  • 客户端主动配置代理:需在浏览器或系统中手动设置代理地址。
  • 隐藏客户端身份:服务器看到的请求来源是代理 IP,而非真实客户端 IP。
  • 适用于客户端侧需求:如个人用户突破网络限制、企业统一出口管理。

三、反向代理

定义代表服务器接收客户端请求的代理服务器。客户端无需知道真实服务器地址,代理服务器根据规则将请求转发至后端多个真实服务器,并将响应返回给客户端。

典型场景

  • 负载均衡:将请求分发到多个后端服务器,避免单点压力过大(如 Nginx 代理 Web 服务器集群)。
  • 服务器隐藏与安全防护:客户端仅与反向代理通信,真实服务器 IP 不暴露,降低被攻击风险。
  • 缓存与静态资源处理:代理直接返回缓存内容或静态文件(如图片、CSS),减轻服务器压力。
    工作流程
  1. 客户端向反向代理(如proxy.com)发送请求。
  2. 代理服务器根据规则(如 URL 路径、负载均衡策略)将请求转发至后端真实服务器(如server1server2)。
  3. 真实服务器处理请求并返回响应至代理,代理再将内容返回给客户端。
    特点
  • 客户端无感知:无需配置代理,直接访问代理服务器域名即可。
  • 隐藏服务器身份:客户端不知道真实服务器地址,只与代理交互。
  • 适用于服务器侧需求:如高并发场景下的负载均衡、分布式系统架构。

四、三者对比

维度 代理(通用) 正向代理 反向代理
角色 网络中介(客户端 / 服务器均可使用) 客户端的 “代理人” 服务器的 “代理人”
用户视角 需根据场景配置 主动配置代理地址 无需配置,直接访问域名
隐藏对象 可隐藏客户端或服务器 隐藏客户端 IP 隐藏服务器 IP 及架构细节
典型用途 通用转发、过滤、缓存 突破网络限制、内网访问 负载均衡、安全防护、缓存
常见工具 - Squid、VPN 客户端 Nginx、Apache、HAProxy

五、总结

  • 正向代理是 “客户端的盾牌”,帮助客户端突破限制并隐藏自身;
  • 反向代理是 “服务器的屏障”,保护服务器并优化服务能力;