最近正好看到项目里有说正向代理和反向代理,我就去查看了下,明白了什么是正向代理和反向代理。
1. 正向代理
正向代理类似一个跳板机器,代理访问外部资源,比如客户端需要访问某个服务端的内容,但是呢,我直接访问不了,我只能访问代理服务器,通过代理服务器访问这个服务端的内容。
简而言之,我想去谷歌搜索内容,正常情况下,你是无法打开谷歌搜索的,必须使用代理才能打开该网页,这就需要你通过客户端设置相关代理,每个客户端都需要设置代理才能访问,这就是正向代理。
正向代理的用途:
(1)访问原来无法访问的资源,如google
(2)可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
2. 反向代理
反向代理实际运行方式是以代理服务器来接收请求,然后转发到内部网络上的服务器,然后把内容返回给客户端。
反向代理对外是透明的,客户端无感知的,访问者并不知道自己访问的是一个代理,因为客户端不需要任何配置就可以访问。
类似上面那个例子,可以有很多客户端访问百度,完全不需要设置代理,百度就相当于代理服务器,它到底去哪里获取了你搜索的资源你根本不知道,它就相当于一个代理服务器,它接收请求,然后去其他网络寻找信息再返回给你。
反向代理的作用:
(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击
(2)负载均衡,通过反向代理服务器来优化网站的负载
这里我借用网上两幅比较有意思的图片,相信不清楚这两个概念的人一看就能明白到底咋回事。