代理(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缓存、企业内容过滤

💡 记忆口诀:

正向代你走出去,反向代你守家门

透明代理无形手,网络流量全掌控