代理(Proxy)是客户端与服务器之间的中间人,负责转发请求和响应。根据部署位置和使用场景的不同,主要分为以下三种类型:
graph LR
A[客户端] --> B{代理类型}
B --> C[正向代理]
B --> D[反向代理]
B --> E[透明代理]
一、正向代理(Forward Proxy)
定义
正向代理是客户端的代理人,客户端通过配置主动使用代理访问目标服务器。就像通过中介租房,房东不知道真实租客是谁。
sequenceDiagram
participant C as 客户端
participant P as 正向代理
participant S as 目标服务器
C->>P: 配置代理地址
C->>P: 发送请求
P->>S: 转发请求
S->>P: 返回响应
P->>C: 转发响应
核心特点
🛡️ 客户端隐私保护:服务器只看到代理IP
🔒 突破访问限制:访问被封锁的资源
💾 本地缓存加速:重复资源无需重复下载
应用场景
企业内网访问外网资源
绕过地理限制访问网站
匿名访问敏感资源
优缺点
✅ 优点
❌ 缺点
保护客户端隐私
需要主动配置
缓存加速访问
可能成为性能瓶颈
突破访问限制
需要维护代理服务器
二、反向代理(Reverse Proxy)
定义
反向代理是服务器的代理人,客户端无感知地通过代理访问后端服务。就像餐厅前台接待员,顾客不知道后厨如何分工。
graph LR
C[客户端] --> RP[反向代理]
RP --> S1[服务器1]
RP --> S2[服务器2]
RP --> S3[服务器3]
核心特点
🛡️ 服务器安全防护:隐藏真实服务器信息
⚖️ 负载均衡:智能分配请求到多台服务器
🔐 SSL终端:统一处理HTTPS加密解密
🖼️ 静态资源缓存:提升响应速度
应用场景
Web服务器负载均衡(如Nginx)
防止DDoS攻击
统一SSL证书管理
蓝绿部署等发布策略
优缺点
✅ 优点
❌ 缺点
提升服务可用性
增加架构复杂度
增强安全性
单点故障风险
方便横向扩展
需要维护代理配置
三、透明代理(Transparent Proxy)
定义
无需客户端配置的强制代理,流量被网络设备拦截处理。就像高速公路收费站,所有车辆必须通过检查。
graph LR
C[客户端] --> |直接请求| F[防火墙]
F --> |强制转发| TP[透明代理]
TP --> S[目标服务器]
核心特点
🚨 强制流量管控:用户无感知的流量拦截
📊 流量监控:记录所有网络活动
🚫 内容过滤:屏蔽非法网站
⚡ 缓存加速:ISP常用技术
应用场景
企业网络监控
家庭家长控制
ISP内容缓存
政府网络审查
优缺点
✅ 优点
❌ 缺点
无需客户端配置
侵犯用户隐私争议
强制安全策略
可能影响网络性能
统一流量管理
需要专业设备支持
对比总结
维度
正向代理
反向代理
透明代理
部署位置
客户端侧
服务端侧
网络基础设施
配置方式
主动配置
无需客户端配置
强制拦截
核心目的
保护客户端/突破限制
保护服务端/负载均衡
网络管控/内容过滤
可见性
客户端感知代理存在
客户端无感知
客户端完全无感知
典型场景
企业外网访问
网站负载均衡、CDN
ISP缓存、企业内容过滤
💡 记忆口诀:
正向代你走出去,反向代你守家门
透明代理无形手,网络流量全掌控