什么是网络代理?
网络代理是一种网络服务,它接受客户端请求,把请求转给服务器,然后得到服务器响应后把响应结果返回给客户端。整个过程避免了客户端与服务端的直接连接。
网络代理涉及到三方实体:客户端,服务端,网络代理自身。该概念可类比于日常生活中的中介。
网络代理有多种分类维度,比如从代理支持的协议可以分为HTTP代理(代理客户端的HTTP访问),SOCKS代理(简单地传递数据包,支持多种协议)等。 本文从网络代理服务的对象是客户端还是服务端介绍正向代理和反向代理。
什么是正向代理(forward proxy)?
正向代理,是在客户端设置的代理服务,与服务端无关。 比如当公司办公网被限制不允许访问外部网络时,可以在办公网的客户端上设置合适的能够访问外部网络的代理,通过该代理让办公网的客户端连接外部网络。
什么是反向代理(reverse proxy)?
反向代理,是在服务端设置的代理服务,与客户端无关。 比如访问量巨大的taobao.com实际由非常多的服务器提供服务,通过在服务器端设置代理,可以均衡海量客户端对服务器的访问。而对各个客户端而言并不知道到底是哪台真实的服务器给自己在提供服务。
小结
图片来源:microsoft doc
正向代理:forward proxy,服务的对象是客户端,隐藏/保护了真实客户端,突破ip访问限制,权限控制等。
反向代理:reverse proxy,服务的对象是服务端,隐藏/保护了真实服务端,负载均衡,缓存静态内容减轻对服务端压力等。