正向代理、反向代理和CDN的区别

5,896 阅读2分钟

一、正向代理

  • 正向代理位于客户端和源服务器之间的服务器(代理服务器)
  • 隐藏客户端:由代理服务器代替客户端去访问目标服务器,用户需要设置代理服务器的IP和端口;
  • 每一次请求是到代理服务器,代理服务器转发请求到真实服务器并获取结果返回给客户端
作用:
  1. 翻墙:绕过无法访问的结点,从另外一条路由路径进行目标服务器的访问;
  2. 缓存:数据缓存在代理服务器上,如果客户端请求的内容在缓存中则不去访问目标主机;
  3. 权限控制:防火墙授权代理服务器访问权限,客户端通过正向代理可以通过防火墙;
  4. 隐藏访问者:通过配置,目标服务器无法获取真实客户端信息,只能获取到代理服务器的信息

二、反向代理

  • 对于客户端而言,反向代理服务器像是原始服务器;
  • 隐藏真实服务器:代理服务器代替目标服务器去接受并返回客户端的请求
作用:
  1. 隐藏真实服务器:防止服务器恶意攻击等;
  2. 缓存作用:数据缓存在代理服务器上,如果客户端请求的内容在缓存中则不去访问目标主机;
  3. 负载均衡:如nginx

正向代理和反向代理的区别

重点

正向代理:代理端代理的是客户端。 反向代理:代理端代理的是服务端。

两图(来自知乎和其他网络途径)


三、CDN

全称:Content Delivery Network内容分发网络

解决问题:

  • 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和缓解(解决网络拥堵的状况);
  • 使得用户可就近取得所需内容;
  • 提高用户访问网站的速度

原理:对域名设置CNAME,CNAME指向CDN服务商,在DNS解析时使用全局负载均衡DNS解析,如可以根据地理位置信息解析对应的IP地址,使得用户能就近访问