CDN缓存系统软件使用说明.docx

上传人:b****5 文档编号:30685044 上传时间:2023-08-19 格式:DOCX 页数:19 大小:229.85KB
下载 相关 举报
CDN缓存系统软件使用说明.docx_第1页
第1页 / 共19页
CDN缓存系统软件使用说明.docx_第2页
第2页 / 共19页
CDN缓存系统软件使用说明.docx_第3页
第3页 / 共19页
CDN缓存系统软件使用说明.docx_第4页
第4页 / 共19页
CDN缓存系统软件使用说明.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

CDN缓存系统软件使用说明.docx

《CDN缓存系统软件使用说明.docx》由会员分享,可在线阅读,更多相关《CDN缓存系统软件使用说明.docx(19页珍藏版)》请在冰豆网上搜索。

CDN缓存系统软件使用说明.docx

CDN缓存系统软件使用说明

简介

CDN缓存系统是公有云与终端用户之间的内容传输通道,它通过标准的API接口与各大公有云系统实现对接,将云里的内容和应用快速、安全地分发到终端用户手中。

它可以实现系统内部流量的分配和调度,确保内容传输的高效、快速、安全。

CDN缓存系统将传输的内容及应用分为静态和动态两类:

对于静态内容,如文字、图片等,采用传统的CDN缓存方式,将内容分发到离用户最近的地方;对于动态内容,如注册、登陆、搜索等,通过协议优化、文件压缩等技术手段,打造一条快速、安全、稳定的通道,让用户快速的获取内容。

CDN服务对网站的作用是什么?

使网站的用户享受到高品质的服务网站的服务更安全网站建设更简单,可以采用更灵活的方式进行扩容从容应付各种突发访问量的冲击;CDN技术用于虚拟主机的开发与应用,是现行解决网络宽带拥挤、网站响应速度慢、南北网络互连互通问题最有效的方法:

(1)解决网站高流量、大并发的问题。

我们知道,任何一个物理设备,其负载都有一个极限。

为了应对访问量突增,使用CDN服务是一个好的系统扩容方案。

(2)解决南北互联问题。

我国的网络是划江而治的格局,因为利益之争,各网络服务商之间并不是通力协作,而是采取各种手段相互限制。

这就导致各网之间的互联互通存在很大的问题,具体表现为:

电信的用户访问放置在网通机房的服务器,响应时间特别长,反之亦然。

使用CDN技术,可以让电信的用户访问电信的内容缓存服务器,网通的用户访问网通的内容缓存服务器。

通过这样一种策略,绕开了网络运营商之间人为设置的障碍。

(3)访问加速。

CDN采用缓存技术,把访问对象缓存起来,有的技术甚至能把对象缓存到内存(如Varnish),这在效果上表现出来的即是访问加速。

(4)降低总体运营成本。

使用CDN运营方案,把源站放在BGP机房,而把缓存服务器放置在带宽费用较低的其他地方。

因为CDN的大部分流量被转移到缓存服务器上,源站只有较小的访问请求,因此总体运营成本大幅降低。

(5)提高网站的可用性。

源站的访问量变得很小,这意味着源站系统有更低的负载,更低的磁盘I/O,防故障的几率大大降低。

对于缓存服务器,多个服务器做成集群,保证了整个系统的高可用。

CDN服务与镜像站点的区别是什么?

CDN对用户完全透明,不需要用户手动选择需要访问的镜像站点;  

CDN对节点有健康性检查,而镜像则没有,因此CDN可用性更高;  

CDN的内容同步机制不需要人工的干预,而镜像站点需要一套复杂的系统来实现内容同步;镜像站点的系统复杂,维护工作量大,对运维工作有很大的压力;  

CDN部署便捷,几乎不需要对原有的站点做什么改动,很短的时间内就可以采用并产生显著的效果;  

CDN节点分布范围广,镜像站点很难做到同样的覆盖范围。

哪些内容适合用CDN技术进行加速?

网站中所有的静态网页、图片等静态内容非常适合用CDN技术进行加速以外,很多以动态方式制作的页面其实也是可以通过CDN进行加速的。

这些内容主要是指通过JSP/PHP等数据库查询程序生成的页面,但同一个URL对不同用户看到的内容都是一样的。

这样的情况下,Cache可以缓存下这个URL及相应的内容,就象是一个标准的URL一样,即使这个URL后面有?

号,跟了很多查询条件都没有关系。

网站中象这样的准静态内容在采用CDN加速之后,同样能起到很好的效果。

对于准静态内容如何来实现cache?

对于准静态内容,主要是指通过JSP/PHP等数据库查询程序生成的页面,但同一个URL对不同用户看到的内容都是一样的。

这样的情况下,Cache可以缓存下这个URL及相应的内容,就象是一个标准的URL一样,即使这个URL后面有?

号,跟了很多查询条件都没有关系。

对于这类内容最需要考虑的是刷新时间,对频繁更新的,我们可以设置成10分钟或更短,对于更新较少的可以相应延长刷新时间。

设置刷新时间可以按目录来设置,也可以按具体URL来设置,或按某个关键字段来设置,非常灵活。

对准静态内容使用CDN后,可以明显地降低数据的压力,同时提高页面响应速度,效果是非常明显的。

CDN业务应用浅析

如何缓解网络拥塞,提高用户获取信息的速度,成为困扰众多企业和服务商的一大难题。

CDN即内容分发网络(ContentDelieveryNetwork),它可以认为是建立在现有IP网络基础结构之上的一种增值网络。

CDN技术将多点负载均衡、镜像与Cache技术结合起来,利用智能分配技术,将网站内容根据来访用户的地点,按照就近访问的原则分配到多个节点。

CDN业务特点与优势:

(1)CDN业务具有如下特点:

根据用户的地理位置和连接带宽,让用户连接到最近的服务器上去,访问速度快;全局负载平衡,提高网络资源的利用率,提高网络服务的性能与质量;热点内容主动push,自动跟踪,自动更新;网络具有高可靠及可用性,能容错且很容易扩展;并无缝地集成到原有网络和站点上去。

(2)CDN业务优势体现在以下几个方面:

可减少消耗的网络带宽,减少网络访问的延迟和用户响应时间,增加了网络性能和网站内容的可用性;提高Web资源的管理控制能力,智能分配路由和进行流量管理;发送的内容受到保护,未授权的用户不能修改;内容提供商可在本地自己决定服务的内容,内容提供商在降低成本的同时,提高了服务质量;可线性、平滑地增加新的设备,保护原有投资。

CDN的四大关键技术简介

随着宽带网络和宽带流媒体应用的兴起,CDN(通常被称为内容分发网络Contentdistributionnetwork,有时也被称作内容传递网络Contentdeliverynetwork)作为一种提高网络内容,特别是提高流媒体内容传输的服务质量、节省骨干网络带宽的技术,在国内外得到越来越广泛的应用。

CDN的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等。

(1)内容路由技术

CDN负载均衡系统实现CDN的内容路由功能。

它的作用是将用户的请求导向整个CDN网络中的最佳节点。

最佳节点的选定可以根据多种策略,例如距离最近、节点负载最轻等。

负载均衡系统是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。

通常负载均衡可以分为两个层次:

全局负载均衡(GSLB)和本地负载均衡(SLB)。

全局负载均衡(GSLB)主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域)。

因此,就近性判断是全局负载均衡的主要功能。

本地负载均衡一般局限于一定的区域范围内,其目标是在特定的区域范围内寻找一台最适合的节点提供服务,因此,CDN节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要依据。

负载均衡可以通过多种方法实现,主要的方法包括DNS、应用层重定向、传输层重定向等等。

对于全局负载均衡而言,为了执行就近性判断,通常可以采用两种方式,一种是静态的配置,例如根据静态的IP地址配置表进行IP地址到CDN节点的映射。

另一种方式是动态的检测,例如实时地让CDN节点探测到目标IP的距离(可以采用RRT,Hops作为度量单位),然后比较探测结果进行负载均衡。

当然,静态和动态的方式也可以综合起来使用。

对于本地负载均衡而言,为了执行有效的决策,需要实时地获取Cache设备的运行状态。

获取的方法一般有两种,一种是主动探测,一种是协议交互。

主动探测针对SLB设备和Cache设备没有协议交互接口的情况,通过ping等命令主动发起探测,根据返回结果分析状态。

另一种是协议交互,即SLB和Cache根据事先定义好的协议实时交换运行状态信息,以便进行负载均衡。

比较而言,协议交互比探测方式要准确可靠,但是目前尚没有标准的协议,各厂家的实现一般仅是私有协议,互通比较困难。

(2)内容分发技术

内容分发包含从内容源到CDN边缘的Cache的过程。

从实现上看,有两种主流的内容分发技术:

PUSH和PULL。

PUSH是一种主动分发的技术。

通常,PUSH由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的Cache节点。

分发的协议可以采用HTTP/FTP等。

通过PUSH分发的内容一般是比较热点的内容,这些内容通过PUSH方式预分发(Preload)到边缘Cache,可以实现有针对的内容提供。

对于PUSH分发需要考虑的主要问题是分发策略,即在什么时候分发什么内容。

一般来说,内容分发可以由CP(内容提供商)或者CDN内容管理员人工确定,也可以通过智能的方式决定,即所谓的智能分发。

它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程。

PULL是一种被动的分发技术,PULL分发通常由用户请求驱动。

当用户请求的内容在本地的边缘Cache上不存在(未命中)时,Cache启动PULL方法从内容源或者其他CDN节点实时获取内容。

在PULL方式下,内容的分发是按需的。

在实际的CDN系统中,一般两种分发方式都支持,但是根据内容的类型和业务模式的不同,在选择主要的内容分发方式时会有所不同。

通常,PUSH的方式适合内容访问比较集中的情况,如热点的影视流媒体内容;PULL方式比较适合内容访问分散的情况。

在内容分发的过程中,对于Cache设备而言,关键的是需要建立内容源URL、内容发布的URL、用户访问的URL,以及内容在Cache中存储的位置之间的映射关系。

 当用户访问已经加入CDN服务的网站时,首先通过CDN公司的3DNS确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。

当用户的请求到达指定节点时,CDN的服务器负责将用户请求的内容提供给用户。

  用户访问的基本流程如下:

●用户在自己的浏览器中输入要访问的网站的域名;

●浏览器向本地DNS(域名解析系统)请求对该域名的解析;

●本地DNS将请求发到网站的主DNS,主DNS再将域名解析请求转发到3DNS;

●3DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果(IP地址)发给用户;

●用户向给定的CDN节点请求相应网站的内容;

●CDN节点中的服务器负责响应用户的请求,提供所需的内容。

一个典型CDN网络结构由以下五部分组成,如图所示。

      

内容缓存:

位于POP接入点或多点IDC中,可缓存静态的Web内容和流媒体内容。

内容交换机:

在IDC中,可对内容缓存负载平衡及访问控制。

内容路由器:

在POP点或IDC中,负载为用户的请求选择最佳的访问站点。

内容分发系统:

内容缓存只可缓存静态内容而对于一些要求对其所有分布站点的内容作镜像的用户,我们需要一个内容镜像系统,这就是内容分发系统。

CDN管理系统:

由于CDN系统是提供给多个用户共享,所以需要一个中心管理系统作为CDN的集中管理。

CDN系统的关键构件:

一个完整的CDN网络主要由三个子系统组成。

●3DNS:

3DNS是CDN服务中的关键子系统。

当用户访问加入CDN服务的网站时,域名解析请求将最终交给3DNS进行处理。

3DNS通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。

同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的CDN节点上。

●CDN节点:

对于普通的Internet用户来讲,每个CDN节点就相当于一个放置在它周围的WEB。

通过3DNS的控制,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求。

由于它离用户更近,因而响应时间必然更快。

每个CDN节点由两部分组成:

负载均衡设备和内容加速服务器。

负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与3DNS的通信,实现整个系统的负载均衡。

内容加速服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。

●CDN管理系统:

CDN的管理系统是整个系统能够正常运转的保证。

它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。

通过完善的网管系统,用户可以对系统配置进行修改。

CDN系统的设计原则

鉴于CDN网络系统在整个网络系统中的重要性,网络系统设计必须既适应当前应用考虑,又面向未来信息化发展需求。

在设计网络技术方案时,应遵循以下设计原则:

1、实用性和先进性:

采用先进成熟的技术满足当前的业务需求,兼顾其他相关的业务需求,尽可能采用先进的网络技术以适应更高的数据、多媒体信息的传输需要,使整个系统在一段时期内保持技术的先进,并具有良好的发展潜力,以适应未来业务的发展和技术升级的需要。

2、安全可靠性:

为保证将来的业务应用,网络必须具有高可靠性。

要对网络结构、网络设备、服务器设备等各个方面进行高可靠性的设计和建设。

在采用硬件备份、冗余等可靠性技术的基础上,采用相关的软件技术,提供较强的管理机制、控制手段、事故监控和网络安全保密等技术措施,提高网络系统的安全可靠性。

3、灵活性与可扩展性:

网络系统是一个不断发展的系统,所以它必须具有良好的扩展性。

能够根据将来信息化的不断深入发展的需要,方便地扩展网络覆盖范围、扩大网络容量和提高网络各层次节点的功能。

具备支持多种通信媒体、多种物理接口的能力,提供技术升级、设备更新的灵活性。

4、开放性/互连性:

具备与多种协议计算机通信网络互连互通的特性,确保网络系统基础设施的作用可以充分发挥。

在结构上真正实现开放,基于国际开放式标准,包括各种广域网、局域网、计算机及数据库协议,坚持全国统一规范的原则,从而为未来的业务发展奠定基础。

5、经济性/投资保护:

以较高的性能价格比构建网络系统,使资金的产出投入比达到最大值。

能以较低的成本、较少的人员投入来维持系统运转,提供高效能与高效益。

尽可能保留并延长已有系统的投资,充分利用以往在资金与技术方面的投入。

6、可管理性:

在CDN环境中,所有相关设备是分布在不同的地域的,所以对设备的远程管理便非常重要。

由于系统本身具有一定复杂性,随着业务的不断发展,网络管理的任务必定会日益繁重。

所以在网络的设计中,必须建立一个全面的网络管理解决方案。

网络设备必须采用智能化、可管理的设备,同时采用先进的网络管理软件,实现先进的分布式管理。

最终能够实现监控、监测整个网络的运行状况,合理分配网络资源、动态配置网络负载,可以迅速确定网络故障等。

  在将来,随着新的多媒体业务模型的增长,内容分发技术与CDN将成为以高可靠性的、可扩展的与安全的方式提供托管业务的关键,在保障网络的可访问性(速度、安全、完整性)方面发挥出更大的作用。

云分发部署

源站Web服务既可以是Apache,也可以是Nginx。

基于性能和部署简单考虑,选用Nginx做Web工具。

安装Nginx:

(1)下载最新的稳定版到当前目录:

wgethttp:

//nginx.org/download/nginx-0.7.63.tar.gz

(2)解包:

tarzxvfnginx-0.7.63.tar.gz

(3)切换目录:

cdnginx-0.7.63

(4)检查是否存在:

pcrerpm-qa|greppcre

(5)配置:

./configure–prefix=/usr/local/nginx

(6)编译、安装:

make;makeinstall配置Nginx

根据前面的规划,需要把源站做成高可用的负载均衡环境,因此,需要在一个物理Web上同时运行3个站点,然后由这3个Web组成LVS集群。

对于单个的Nginx配置文件,就是运行3个虚拟主机。

为了方便以后的维护,采取配置文件分割的方式进行处理。

即配置文件分主配置文件和虚拟机配置文件。

主配置文件include指令包含各个虚拟机配置文件。

对应于3个不同的站点,其配置文件的名称分别为www.conf、dl.conf和images.conf。

主配置文件/usr/local/nginx/conf/nginx.conf(部分参数来源于小毛)。

userwww;

worker_processes10;

error_log/data/logs/error.log;events{

worker_connections10240;

usekqueue;

http{

includemime.types;

default_typeapplication/octet-stream;includevhosts/*.conf;

log_formatmain'$remote_addr-$remote_user[$time_local]

$request'

'"$status"$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';access_log/data/logs/access.logmain;sendfileon;

userid_expiresmax;tcp_nopushon;tcp_nodelayon;

server_names_hash_bucket_size256;client_header_buffer_size256k;large_client_header_buffers4256k;client_max_body_size20m;client_header_timeout3m;client_body_timeout3m;send_timeout3m;output_buffers132k;postpone_output1460;keepalive_timeout6010;gzipon;

gzip_typestext/plaintext/htmltext/cssapplication/

x-javascript;

}

虚拟主机配置文件,一共3个。

在/usr/local/nginx/conf下创建目录vhosts,然后在这个目录下创建3个虚拟机配置文件,其内容分别如下:

①配置文件www.conf:

server{

listen80

server_name;indexindex.htmindex.html;

root/mnt/html/www;error_page404/404.htm;autoindex_exact_sizeon;

access_log/data/logs/nginx-access/www.logcombined;}

②配置文件images.conf:

server{

listen80

server_name;indexindex.htmindex.html;root/mnt/html/images;error_page404/404.htm;autoindex_exact_sizeon;

access_log/data/logs/nginx-access/images.logcombined;}

③配置文件dl.conf:

server{

listen80

server_name;indexindex.htmindex.html;root/mnt/html/dl;error_page404/404.htm;autoindex_exact_sizeon;

access_log/data/logs/nginx-access/dl.logcombined;}

配置文件的根文档所在的目录/mnt/html为NFS服务的挂接点,3个物理服务器共享该目录,这样做的好处是修改站点时只需登录任意一个服务器做更改,而不必额外做同步操作。

如果条件许可,使用分布式文件系统共享存储,将会得到更好的可用性和更快的访问速度。

上述文件都配置好以后,安装配置文件的设定创建好相关的目录,然后把相关的站点文件复制到各自的目录。

接着运行/usr/local/nginx/sbin/nginx–t检查一下语法,无误后再执行命令/usr/local/nginx/sbin/nginx启动Nginx。

接着,我们在Windows客户端机器修改系统的hosts文件,把如下的行追加进文件

hosts:

125.88.62.100125.88.62.100125.88.62.100

保存文件以后,再用浏览器分别访问这3个站点,以检验配置的正确性。

(1)安装和配置其他两个服务器的Nginx,并逐个检查其正确性。

因为3个服务器均以共享方式挂接网站的目录,因此只需要安装和配置好Nginx,而不必再复制站点的内容到本地文件系统。

(2)部署负载均衡,具体过程参见“负载均衡”一章。

负载均衡被正确配置和启动以后,我们再回来修改客户端Windows的系统hosts文件,使负载均衡的VIP与域名绑定,然后再用浏览器访问3个域名,检查加入负载均衡环境后,各站点的运行情况。

记住这个VIP(125.88.62.99),以后我们在缓存服务器上会使用它。

缓存服务器的部署和运行

安装Varnish

(1)下载Varnish到本地目录:

wget

/varnish-1.1.2.tar.gz/download

(2)解包:

tarzxvfvarnish-1.1.2.tar.gz

(3)切换目录:

cdvarnish-1.1.2

(4)配置,编译和安装:

./configure–prefix=/usr/local/varnishmakemakeinstall

配置Varnish

Varnish的配置分两部分:

源站名称的解析和Varnish本身的配置文件。

在我的应用中,总共有3个站点需要缓存,因此需要解析出3个源站和配置3个站点的缓存。

(1)源站地址解析:

这里我们再来回顾一下源站地址解析的作用:

缓存服务器通过这个机制来寻找源站在何处。

在我们这个小规模的场景,用本地hosts绑定域名即可实现源站地址解析,而在复杂的CDN环境,则需要使用专门的DNS服务器来完成这个工作。

修改后的服务器的/etc/hosts文件如:

125.88.62.99125.88.62.99125.88.62.99修改保存后,用域名检查其网络连通性,如ping。

(2)配置Varnish:

Varnish解包以后,可在解包后的目录找到一个名为default.vcl的配置样例文件,参考这个样例文件,则能编写出符合我们实际需求的配置。

这里,我先列出完整的配置文件,然后再做一些说明。

运行Varnish

与其他开源软件相比,Varnish的启动确实很复杂。

为了能正确运行Varnish并检验其是否正常运

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1