1 正向代理 Forward Proxy
正向代理的含义:
正向代理是一个位于客户端和原始服务器之间的服务器。客户端为了从原始服务器取得内容,将会向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
计网中学到的 web 缓存器感觉就是一种正向代理。
正向代理的特点:
- 由客户自己进行部署
- 能够隐藏客户自己的信息
- 支持访问多个站点,比如:YouTube、Twitter、Instagram 等
正向代理的作用:
- 访问原来无法访问的资源,如:Google 等。
- 可以做缓存,加速访问资源。
- 对客户端访问授权,上网进行认证。
- 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。
VPN 的原理:如果我们电脑的对外公网 IP 地址能变成美国的 IP 地址,那不就可以访问 Google了。VPN 就是这样产生的。我们在访问 Google 时,先连上 VPN 服务器将我们的 IP 地址变成美国的 IP 地址,然后就可以顺利的访问了。
2 反向代理 Reverse Proxy
反向代理的含义:
反向代理是指使用代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
在使用反向代理的场景中,客户端是无法感知代理服务器的存在的。由于客户端自己不需要任何配置就可以访问,因此它并不知道自己访问的是一个代理。
反向代理的特点:
- 由服务商进行部署;能够隐藏原始服务器的信息。
- 支持访问有限个站点,因为服务商只为自己部署。
- 正向代理隐藏客户端,反向代理隐藏服务器。
反向代理的作用:
- 保证内网的安全,可以使用反向代理提供 WAF 功能,阻止 web 攻击
- 在代理服务器处就能进行 DDos 防护
- 负载均衡,通过反向代理服务器来优化网站的负载
- 可以通过权重或通过区分 url 来进行负载均衡
反向代理类型:
- 应用层代理
- 支持五元组:源 IP 和 Port,目的 IP 和 Port,传输层协议
- 支持应用层协议
- 传输层代理
- 支持五元组
- 转发效率更高,因为不需要解析应用层协议
3 正向代理和反向代理的区别
代理的应用场景:
两者的区别:
- 正向代理中,proxy 和 client 同属一个 LAN,对 server 透明
- 反向代理中,proxy 和 server 同属一个 LAN,对 client 透明
- 实际上,两种情形中 proxy 做的事都是代为收发请求和响应
- 不过从结构上看刚好左右互换了一下,故后出现的方式称为反向代理
代理的分类和特点:
nginx、envoy 和 haproxy 都是常用的网络代理。