CDN帮助解决人在黑龙江,想要买云南的瓜的问题。
内容分发网络
CDN
全名Content Delivery Network
,本质上是一组分布在各地的服务器,拥有和源服务器相同的数据。可以根据哪些服务器距离用户最近,满足数据的请求需要。
CDN
就好比京东自营旗舰店,我在黑龙江买了一件东西,东西本来只有云南的商家才有,所以商家必须从云南把东西给我运过来。但是黑龙江到云南路途遥远,可能运输的时候我买的东西就坏了或者丢了,又或者很久都运不过来(丢包和阻塞)。这样的购物体验一点都不好,所以商家出于店铺口碑考虑,在全国各地都开了分店,买的东西都和云南的店铺一样。然后发现我是从黑龙江买的东西,所以就让在哈尔滨的店铺给我发货,这样东西运输的时间和距离就大大减少了。
上面就是CDN
的基本工作流程。实际过程中用户和服务器可能相距非常远,直接响应用户的请求代价太大。所以有了CDN
服务,它是一群服务器,源服务器会提前将内容副本拷贝给CDN
服务器。当用户请求数据的时候,CDN
会截获用户请求,找到距离用户最近的CDN
服务器,并从最近的服务器返回资源给用户。
请求截获
如果源服务器部署了CDN
,那么在域名解析的过程中,返回给用户的IP
地址就不是源服务器的地址了,而是CDN
服务器的地址。这样做不仅可以让用户更快的访问网站内容,还能起到掩盖源服务器IP
地址的作用,避免恶意的网络攻击。
任播
任播技术是实现CDN
的一项重要技术。任播可以实现CDN
服务器的负载均衡以及找到距离用户最近的服务器。
所谓任播就是CDN
服务器都具有相同的IP
地址,并且由于CDN
的特性,其服务器上面的内容都是源服务器的数据副本,也就是说都是一样的。所以用户访问任何一台CDN
服务器的结果都是一样的,我们可以在用户不知道的情况下就将用户的请求重定向到另外的服务器,由此实现均衡负载以及找到距离最近的服务器。同时还能避免由于DDos
攻击导致一台服务器宕机后网站就不能正常访问的情况。