韩瑞东
(运城学院计算机科学与技术系,山西运城044000)
基于CDN架构的WEB服务器的设计与实现
韩瑞东
(运城学院计算机科学与技术系,山西运城044000)
在网络中,可能出现大量用户在同一时间节点访问同一台服务器来获取同一网络资源,如春运抢票和高校网上选课。针对这些情况,提出了一种CDN技术,将几个地理位置不同的镜像WEB服务器从源WEB服务器上复制内容服务到本地,让用户就近获取内容,克服了互联网固有的局限性,并提供了一种改进资源获取的服务方式,减少请求响应时间,增加了用户体验,以及提高了安全性。
网络资源;CDN技术;WEB服务器;响应时间;安全性
随着互联网的普及,WEB服务器经常接收到大量的用户并发访问从而导致拥堵。这种情况就会使流量难以控制,许多请求被丢失。基于此,提出了CDN(Content Delivery Network)技术,其工作原理就是当用户在请求网络资源时,用户的请求被重定向到最近的服务器上,这种做法有助于减少用户的请求响应时间,为网络减轻负荷。内容分发网络(CDN)尽量避开那些可能影响网络数据传输和稳定性的环节和瓶颈,使数据传送更迅速、更安全。CDN是一种智能虚拟网络,通过在现有的网络基础之上各处放置节点服务器,其能够根据实时流量、各网络连接节点、网络负载以及用户请求距离与响应时间等综合信息将用户请求重新定向到最近的节点服务器上。目的就是为了让用户就近获取所需要内容,解决网络拥塞问题,提高用户请求响应时间[1]。
内容分发网络(CDN)部署在多个数据中心代理服务器的全球分布式网络,也称为网站加速,CDN加速将网站的内容缓存在网络边缘,使用户就近获取所需要的内容,提高访问网站的速度。CDN有别于镜像,其比镜像更加智能,CDN=更智能的镜像+流量导流+缓存。CDN的实现需要依赖多种网络技术的支持,最主要的技术有缓存技术、负载均衡技术、动态内容分发与复制技术等[2]。CDN的工作流程如下:当用户访问加入CDN服务的网站时,首先通过DNS重定向技术确定网络中离用户最近的那个CDN节点,并且将用户的请求指向该节点。当CDN节点收到用户的请求时,节点上的高速缓存(CDN服务器)就将所请求的内容传送回用户[3]。
本架构的搭建与部署主要是通过三个层面来实现的。第一,真实的源服务器运行在Linux系统上,后端的WEB服务由Nginx提供支持;第二,把真实服务器的资源通过Squid反向代理同步到不同地域的计算机(网络节点)上;第三,通过部署智能DNS解析来达到用户能从离自己最近的WEB服务器上获取资源的功能,这是架构实现的关键所在。
(1)网络拓扑分析:网络拓扑结构是用来描述互联网中硬件设备之间的连接方式和组织架构。通过一个网络的拓扑图就可以大致了解网络信息的流转原理和工作机制;
(3)智能DNS分析:智能DNS通过用户端的IP地址的不同进行智能的划分用户的请求网络资源将会从离用户最近的代理服务器那里获取。
本网络架构搭建成功以后,各其它一般的网络架构相比,在性能方面具有如下几个优势:
(1)本网络架构可以在一定程度上并发处理上万的网络请求。通过它的DNS分类处理会把不同地域的请求转发给不同的代理服务器,从而也实现了负载均衡;
(2)由于本架构的设计实现的整个过程中,用到的网络机制就是内容分发,所以这就决定在性能方面还有一大特性就是能够有效降低DDOS的攻击,完美的解决了这一类网络攻击的顽疾。
通过需求分析,本架构还有安全性、稳定性、兼容性、合理性等多个特性。
本架构由三大功能模块组成,分别是源服务器模块、反向代理分发模块和智能DNS分流模块。其中,源服务器模块由Nginx提供支持,反向代理分发模块由Squid提供支持,最后的智能DNS分流模块由View模块实现。功能模块图如图1所示。
军事智能化是一把双刃剑,一方面,它在很多领域能代替人类完成艰难险重的任务,使部队官兵从繁杂的事务中解脱出来,将科技作为第一战斗力、核心战斗力的贡献率大幅提高;另一方面,它也可以为恐怖分子和邪教组织所用,对人类实施恐怖袭击,给社会造成不可挽回的危害。同时,随着智能机器人技术的发展,它本身也会成为一个独立的行为个体。倘若智能机器人脱离了人类的控制,也存在着做出反人类行为的可能性。因此,我们对智能武器可能出现的危害性也要高度警惕,并建立完善的预防处置方案,防患于未然或将危害损失降到最低。
图1 架构功能模块图
源服务器模块:后台真实的服务器组,上面运行WEB等的其他服务。
反向代理模块:通过Squid技术把源服务器的资源同步到不同地方的代理服务器上,并向用户提供服务。
智能DNS模块:当用户请求网络资源时,DNS会通过之前配置好的View视图去智能匹配和分发,把离用户最近的网络资源返回给用户。
通过上述三个模块的配合实现,比如当太原的网民访问优酷网时,域名服务器可以解析为北京本地的优酷网服务器,江苏地区的网民访问优酷网时,域名服务器将会把上海的优酷网服务器IP地址作为结果返回给用户。这样,所有人访问优酷网查看网页时,总是可以连接自己最近的服务器。
本架构的网络拓扑结构图如图2所示。
图2 网络拓扑图
(1)源服务器组
拓扑图中的Web1和Web2是后台的真实服务器组群,把要运行的服务如Web服务全跑在它们上面,它们上面的资源应该是一致的[4]。
(2)代理服务器组
拓扑图中的代理服务器在地理位置上是不同的并且是相互独立的。通过Squid技术可以把真实服务器中的网络资源同步下载到代理服务器中。所以当用户访问服务器的时候其实并不是真实服务器在工作,而是代理服务器在工作。这样的好处是把真实服务器隐藏在后台,用户看不到也链接不上,这样就大大提高用户响应时间,降低DDOS的恶意攻击,为服务器的安全和可靠提供了保证。
(3)DNS服务器组
拓扑图中的DNS服务器在整个架构中充当一个流水线的“分拣工”。通过View视图的配置它会智能识别来自不同地区用户的网络请求,最终的结果是离用户最近的代理服务器发送网络资源给用户,在用户的层面是根本察觉不到的。这样做的好处是大大提高了用户的访问效率,提高了用户上网体验度。
使用7台Linux主机部署CDN环境架构,使用Nginx作为后端源Web服务器,Squid作为各地区反向代理服务器,BIND作为分离解析DNS服务器,本网络架构的虚拟实现部署的总体方案安排如下[5]:
DNS服务器(172.16.0.254):dns254.ycu.com反向代理服务器(172.16.0.100):squid100.yc.com反向代理服务器(172.16.0.200):squid200.ycu.com Web1服务器(172.16.0.10):web10.ycu.com Web2服务器(172.16.0.20):web20.ycu.com测试客户机01(172.16.0.1):pc01.ycu.com测试客户机02(172.16.0.2):pc02.ycu.com
实现此案例需要按照如下步骤进行:
(1)使用yum安装基础依赖包并使用源码安装LNMP环境软件,使用源码安装Nginx软件,使用源码安装mhash,libiconv,libmcrypt,php等;
(2)启动相关服务。软件安装完毕后默认是没有启动的。软件的启动要按下面的顺序来操作:首先启动Nginx服务器,这里需要注意的是,如果服务器上已经启动了其他监听80端口的服务软件(如httpd),则需要先关闭该服务,否则会出现冲突;
(3)修改配置文件实现FastCGI功能。
在拓扑图的设计中,反向代理服务器的设计目的在于:真正提供网络服务的是代理服务器,这样就把源服务器隐藏在用户接触不到的地方,大大提高了服务器的安全性和可靠性。代理服务器通过安装Squid软件会自动同步源服务器的网络资源。部分具体实现代码如下:为Squid100主机的IP。
通过部署DNS,会智能的分辨用户的网络请求。当一个用户发来上网请求后,DNS会根据用户的源IP地址进行分类,给用户分配一个距离他最近的代理服务器提供服务。具体实现代码片段如下:
修改区域数据文件,添加域名解析记录。注意因为需要实现分离解析,故此区域数据文件需要创建两份,并且要求解析记录要有所不同。具体实现代码片段如下:
通过上述的三个模块的设计与部署基本实现了CDN的架构功能,通过异地PC1和异地PC2访问www.ycu.com,通过服务器上的访问记录日志可知道是通过不同的代理服务器获得的网络资源。如果把这一CDN网络架构真正搭建在互联网中,便可以实现企业网站的负载均衡,不同地区的用户总是从离自己最近的代理服务器那里获取所需的网络资源。
[1]石建松.基于云计算的CDN流媒体分发平台关键技术研究[J].华南理工大学学报,2012(7):30-37.
[2]杨明川.内容分发网络关键技术分析[J].电信科学,2005(8):12-18.
[3]刘卫宁,高龙.异构云中面向集群负载均衡的任务调度策略[J].计算机应用,2013(8):9-12.
[4]郭欣.构建高性能Web站点(修订版)[M].北京:电子工业出版社,2012.
[5]易柏胜.基于虚拟机动态变更机制的设计与实现[D].广州华南理工大学,2013.
The Design and Implementation of WEB Server Based on CDN Architecture
HAN Rui-dong
(Department of Computer Science and Technology of Yuncheng University,Yuncheng Shanxi,044000)
In the network,the same server may receive a large number of users’access at the same time node to get the same net⁃work resources,such as travel tickets and college online course selection.In view of this situation,CDN technology is proposed,com⁃bines several geographically mirrored WEB server copy contents from a source WEB server to the local,allows users to get content,overcomes the inherent limitations of the Internet,and provides an improved resource acquisition services,reduces response time,in⁃creases the user experience,and improves security.
network resources;CDN technology;WEB server;response time;security
O175
A
1674-0874(2016)05-0017-04
2016-07-08
运城学院协同创新研究项目[CI-2015018]
韩瑞东(1988-),男,山西运城人,硕士,助教,研究方向:软件开发技术。
〔责任编辑 高海〕