所谓代理即在一组客户端和一组服务器之间充当中介的服务器。代理分为两种:正向代理(转发代理)和反向代理。
正向代理和反向代理是不同的:
正向代理
正向代理是一个被配置为代表客户端的服务器。客户端的请求转到代理处,而不是服务器处。代理再将请求转发给服务器,并等待响应,将其送回给客户端。
这样的话,服务器就不知道客户端是谁了。 它只知道代理的源IP地址。 因此,正向代理可以保护和隐藏客户端的身份。 VPN也遵循相同的工作原理。
使用正向代理,客户端可以访问他们本不应该访问的服务器。 但是使用正向代理在系统级别也有优势,因为它们可以:
- 选择性的发送/阻止请求
- 记录或监控请求
- 缓存回复
反向代理
反向代理是配置为代表另一台服务器运行的服务器。 代理代替服务器接收客户端的请求。 代理将请求转发到服务器并等待将它们发送回给客户端的响应。
客户端不知道它正在与反向代理通信。 响应返回给客户端,似乎来自服务器本身。 因此反向代理可以保护和隐藏服务器的身份。
反向代理的主要优点有:
- 为一组服务器做负载平衡
- 服务器的匿名性和更高的安全性
- 更好的性能,代替服务器执行额外的任务
例如,反向代理可以缓存静态内容,减少整体系统延迟。 或者它们可以减轻执行其他任务的服务器的负载,例如:
- 数据压缩和解压缩
- 数据加解密
- HTTP 身份验证
在系统中引入反向代理也有缺点:
• 系统复杂性增加
• 冗余的反向代理对于避免单点故障是必要的
同样,是否在系统中使用反向代理层,这是一个权衡的问题。