代理在通信路径上承担什么角色?
- 代理: 接收一侧请求,再代表这一侧向另一侧发起请求的中间组件;
- 常见处理: 过滤、记录、修改头部、压缩或终止加密连接,能力取决于协议和产品;
- 信任边界: 代理能看到多少内容取决于加密在哪终止,隐藏某一侧地址不等于端到端匿名;
正向代理如何代表客户端访问外部服务?
- 代表对象: 正向代理代表客户端,外部站点首先看到代理发起的连接;
- 典型用途: 统一出口、访问控制、内容过滤,以及按部署条件访问其他网络资源;
- 隐私边界: 目标站点可能看不到原连接地址,但代理本身仍能记录用户行为和信息;
- 部署成本: 客户端配置、认证、容量和运维都需要维护,不能把代理视为零成本的隐私保证;
反向代理如何代表后端接受请求?
- 代表对象: 反向代理代表服务端,向外提供统一入口并隐藏内部部署细节;
- 入口能力: 可以集中 TLS 终止、缓存、过滤和路由,减少后端重复处理;
- 扩展作用: 更换或增加后端时,客户端仍访问同一入口;
- 风险: 入口会增加一次处理和新的故障点,多实例与切换机制能降低单点风险但增加复杂度;
反向代理与负载均衡是什么关系?
| 概念 | 核心问题 | 单个后端时是否仍有价值 |
|---|
| 反向代理 | 如何统一代表后端提供入口 | 有,例如 TLS 终止与过滤 |
| 负载均衡 | 如何在多个后端之间分配流量 | 分配价值有限 |
- 能力重叠: 一个 L7 入口可以同时承担反向代理和负载均衡,因此不是互斥分类;
- 原文修正: 不能绝对说负载均衡器不能作为反向代理,实际取决于工作层次和转发方式;
- 原文示例: Nginx、HAProxy、Traefik、Envoy,可从职责需求出发再比较产品;