一、概述
上海用户要访问北京网站。通常是直接访问。假如上海用户要查看图片,从北京到上海,路途遥远,访问时间长。如果有了CDN,在上海增加一台CDN服务器。那么上海用户就近访问上海本地的CDN,速度加快。没有搭建CDN时,用户在浏览器输入域名,根据解析后得到的IP地址访问发出请求并得到数据并展示。搭建CDN后,在域名解析的时,CDN域名服务器返回指定域名的CNAME记录,对CNAME记录进行自动在解析。为什么运营商做的这么智能,因为可以省带宽。对他们有好处。
除了速度快,CDN在负载均衡、安全、镜像服务器等诸多方面有比较显著的效果。本来一个源站点,现在是全国各地都有静态资源站点,相当于在各地做了负载均衡。提升了速度和性能,也节省了流量。安全方面能够防ddos攻击。黑客一般针对域名进行攻击。假如攻击某一台服务器,还有其他的服务器,这样风险就变小了,抵御风险的能力垂直上升。即便刷新URL,攻击者只会就近分配服务器,源站服务器不受影响。镜像服务类似游戏的双线,比如同样的带宽,联通玩游戏快一些,电信用户就感觉很慢。这是为什么呢?联通用户首先要经过联通分层网络最终到达顶层主干网络。联通的顶层主干网络再把数据包发送给电信的顶层主干网络。两大运营商之间,分支是不进行交流的。只是顶层主干网络的数据传输。最终电信的顶层主干网络在把数据包分发给各层网络最终到达电信用户游戏服务器。请求一张图片,如果跨运营商,图片下载慢。同一运营商下则速度就会快很多。使用CDN后,可以使不同的运营商仿佛在一个运营商里,这样就不需要把请求传输到顶层的主干网络。假如源站主机放在电信,我们在联通部署一个CDN。联通通过路由计算出最近到CDN的最短距离。这样也就解决游戏双线的问题了。CDN是用来解决网络就近数据传输问题的。WEB商城中90%以上的流量是用来传输静态文件。网络传输的瓶颈是静态资源。如一张图片动不动就是多少M,很耗网络传输。动态资源的瓶颈一般是服务器自身的计算能力,如慢sql的运算能力等。但动态资源传输是很快的,一个JSON数据是没有多少内容的。所以CDN在解决静态资源问题中的作用就显的尤为突出。
二、构建与实操
生产环境中,静态和动态服务器是分开的。且静态资源更多的以集群的形式存在 ,更多要求磁盘空间。在这里我们模拟部署两台服务器,order(179.132)这台机器模拟cdn服务,上面安装nginx-反向代理机器和squid。public(179.131)这台机器模拟源站。如下:
如上,在132的这台CDN服务器上,可以轻松获取到源站131的静态资源。CDN流量加速搭建完成。