文章目录
- Web代理服务
- 反向代理
- 反向代理作用
Web代理服务
Web 代理服务指的是在客户端资源请求和提供这些资源的 Web 服务之间充当中介的角色,代理服务可以实现在客户端,或者从客户端到目标服务器中间的任意环节。
例如,客户端不直接向提供目标资源的 Web 服务发起请求,而是带上目标资源的完整 URL 去请求代理服务:
GET http://en.wikipedia.org/wiki/Proxy_server HTTP/1.1
Accept: text/html
代理服务收到之后,(由代理服务来)请求指定资源并将响应结果转发给客户端:
HTTP/1.1 200 OK
Content-Type: text/html; charset UTF-8
反向代理
“反向”自然是相对“正向”来说的,那么,首先要知道什么是正向代理?
正向代理是对外的,面向外部资源,用来从网络上获取各种数据:代客户端发出资源请求,并将响应结果返回给对应的客户端。所以,正向代理更靠近客户端,与客户端的关系更密切(跟服务器关系一般,不熟)
反向代理负责把流量根据配置规则重定向到内部服务器,外部请求并不知道内网的存在,反向代理是对内的,面向内部资源,用作对私有网络上的服务器进行访问控制和保护的前端。所以,反向代理更靠近服务器,与服务器的关系不一般,并且只提供有限的一些资源(不像正向代理能从网络获取各种资源)。
并且这种代理关系对用户来说是一定是透明的,因为用户不知道连接的是源服务还是代理服务。
而用户对正向代理通常是有感知的,明确知道自己正在通过代理访问网络资源。
除正向、反向代理之外,还有:
- 开放代理(Open proxy):面向公众(任何人都可以访问)的正向代理
- 匿名代理(Anonymous proxy):不公开客户端原始 IP 地址的代理服务
- 透明代理(Transparent proxy):透传请求和响应,不做任何修改,用作网关(Gateway)和路由器
从方向上看,正向代理代表客户端请求资源,反向代理代表服务器提供资源:
总结来说:正向代理代表客户端,而反向代理代表服务器
反向代理作用
反向代理常用于以下场景:
- 加密/SSL 加速:将 SSL 加密的工作交由配备了 SSL 硬件加速器的反向代理来完成
- 负载均衡:将流量负载分发给多个 Web 服务器
- 托管/缓存静态内容:将静态内容(比如图片)交由反向代理提供,分担源站负载
- 压缩:代理服务器能够对资源内容进行压缩优化,提升加载速度
- 安全防护:能够屏蔽源服务器的存在及其特征,结合防火墙抵御常见 Web 攻击
- 访问控制:对内容进行监控/过滤,常用于工作场所、学校等