正向代理(Forward Proxy)
正向代理是指用户利用代理服务器访问目标服务器
代理服务器面向用户
常见情景
-
加速访问
像游戏加速器,各种代理软件,就是利用正向代理的原理。例如访问 GitHub, 原本的网络访问速度会比较慢,通过国外的代理服务器就可以达到加速的目的。 -
代理访问
软件开发中,对接了一些服务,服务设置了 ip 白名单,只能通过特定 ip 去访问服务,这时通过代理的方式就可以从本地请求,方便开发与测试。
反向代理
正向代理代理的是用户,而反向代理则相反,代理对象是目标服务器,是指服务端利用代理服务器给用户提供服务。
和正向代理相比,二者都是利用代理服务器实现的,不过反向代理的主语是服务端,所以说反向代理对于用户来说是透明的,在用户的视野里,代理服务器便是目标服务器。
企业级应用中都为后端服务配置反向代理,例如常见的 nginx ,还有 LVS/F5 等。
总结
正向代理需要客户端来配置,一般来说我们会通过浏览器或者操作系统提供的工具或者界面来配置。这个时候,代理对客户端不是透明的,客户端需要知道代理的地址并且手动配置。配置了代理,浏览器在发送请求的时候会对报文做特殊的修改。
反向代理对客户端是透明的,也就是说客户端一般不知道代理的存在,认为自己是直接和服务器通信。我们大部分访问的网站就是反向代理服务器,反向代理服务器会转发到真正的服务器,一般在反向代理这一层实现负载均衡和高可用的功能。而且这里也可以看到,客户端是不会知道真正服务器端的 ip 地址和端口的,这在一定程度上起到了安全保护的作用