韓瑞東
(運城學(xué)院計算機科學(xué)與技術(shù)系,山西運城044000)
基于CDN架構(gòu)的WEB服務(wù)器的設(shè)計與實現(xiàn)
韓瑞東
(運城學(xué)院計算機科學(xué)與技術(shù)系,山西運城044000)
在網(wǎng)絡(luò)中,可能出現(xiàn)大量用戶在同一時間節(jié)點訪問同一臺服務(wù)器來獲取同一網(wǎng)絡(luò)資源,如春運搶票和高校網(wǎng)上選課。針對這些情況,提出了一種CDN技術(shù),將幾個地理位置不同的鏡像WEB服務(wù)器從源WEB服務(wù)器上復(fù)制內(nèi)容服務(wù)到本地,讓用戶就近獲取內(nèi)容,克服了互聯(lián)網(wǎng)固有的局限性,并提供了一種改進資源獲取的服務(wù)方式,減少請求響應(yīng)時間,增加了用戶體驗,以及提高了安全性。
網(wǎng)絡(luò)資源;CDN技術(shù);WEB服務(wù)器;響應(yīng)時間;安全性
隨著互聯(lián)網(wǎng)的普及,WEB服務(wù)器經(jīng)常接收到大量的用戶并發(fā)訪問從而導(dǎo)致?lián)矶隆_@種情況就會使流量難以控制,許多請求被丟失?;诖?,提出了CDN(Content Delivery Network)技術(shù),其工作原理就是當(dāng)用戶在請求網(wǎng)絡(luò)資源時,用戶的請求被重定向到最近的服務(wù)器上,這種做法有助于減少用戶的請求響應(yīng)時間,為網(wǎng)絡(luò)減輕負荷。內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)盡量避開那些可能影響網(wǎng)絡(luò)數(shù)據(jù)傳輸和穩(wěn)定性的環(huán)節(jié)和瓶頸,使數(shù)據(jù)傳送更迅速、更安全。CDN是一種智能虛擬網(wǎng)絡(luò),通過在現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)之上各處放置節(jié)點服務(wù)器,其能夠根據(jù)實時流量、各網(wǎng)絡(luò)連接節(jié)點、網(wǎng)絡(luò)負載以及用戶請求距離與響應(yīng)時間等綜合信息將用戶請求重新定向到最近的節(jié)點服務(wù)器上。目的就是為了讓用戶就近獲取所需要內(nèi)容,解決網(wǎng)絡(luò)擁塞問題,提高用戶請求響應(yīng)時間[1]。
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)部署在多個數(shù)據(jù)中心代理服務(wù)器的全球分布式網(wǎng)絡(luò),也稱為網(wǎng)站加速,CDN加速將網(wǎng)站的內(nèi)容緩存在網(wǎng)絡(luò)邊緣,使用戶就近獲取所需要的內(nèi)容,提高訪問網(wǎng)站的速度。CDN有別于鏡像,其比鏡像更加智能,CDN=更智能的鏡像+流量導(dǎo)流+緩存。CDN的實現(xiàn)需要依賴多種網(wǎng)絡(luò)技術(shù)的支持,最主要的技術(shù)有緩存技術(shù)、負載均衡技術(shù)、動態(tài)內(nèi)容分發(fā)與復(fù)制技術(shù)等[2]。CDN的工作流程如下:當(dāng)用戶訪問加入CDN服務(wù)的網(wǎng)站時,首先通過DNS重定向技術(shù)確定網(wǎng)絡(luò)中離用戶最近的那個CDN節(jié)點,并且將用戶的請求指向該節(jié)點。當(dāng)CDN節(jié)點收到用戶的請求時,節(jié)點上的高速緩存(CDN服務(wù)器)就將所請求的內(nèi)容傳送回用戶[3]。
本架構(gòu)的搭建與部署主要是通過三個層面來實現(xiàn)的。第一,真實的源服務(wù)器運行在Linux系統(tǒng)上,后端的WEB服務(wù)由Nginx提供支持;第二,把真實服務(wù)器的資源通過Squid反向代理同步到不同地域的計算機(網(wǎng)絡(luò)節(jié)點)上;第三,通過部署智能DNS解析來達到用戶能從離自己最近的WEB服務(wù)器上獲取資源的功能,這是架構(gòu)實現(xiàn)的關(guān)鍵所在。
(1)網(wǎng)絡(luò)拓撲分析:網(wǎng)絡(luò)拓撲結(jié)構(gòu)是用來描述互聯(lián)網(wǎng)中硬件設(shè)備之間的連接方式和組織架構(gòu)。通過一個網(wǎng)絡(luò)的拓撲圖就可以大致了解網(wǎng)絡(luò)信息的流轉(zhuǎn)原理和工作機制;
(3)智能DNS分析:智能DNS通過用戶端的IP地址的不同進行智能的劃分用戶的請求網(wǎng)絡(luò)資源將會從離用戶最近的代理服務(wù)器那里獲取。
本網(wǎng)絡(luò)架構(gòu)搭建成功以后,各其它一般的網(wǎng)絡(luò)架構(gòu)相比,在性能方面具有如下幾個優(yōu)勢:
(1)本網(wǎng)絡(luò)架構(gòu)可以在一定程度上并發(fā)處理上萬的網(wǎng)絡(luò)請求。通過它的DNS分類處理會把不同地域的請求轉(zhuǎn)發(fā)給不同的代理服務(wù)器,從而也實現(xiàn)了負載均衡;
(2)由于本架構(gòu)的設(shè)計實現(xiàn)的整個過程中,用到的網(wǎng)絡(luò)機制就是內(nèi)容分發(fā),所以這就決定在性能方面還有一大特性就是能夠有效降低DDOS的攻擊,完美的解決了這一類網(wǎng)絡(luò)攻擊的頑疾。
通過需求分析,本架構(gòu)還有安全性、穩(wěn)定性、兼容性、合理性等多個特性。
本架構(gòu)由三大功能模塊組成,分別是源服務(wù)器模塊、反向代理分發(fā)模塊和智能DNS分流模塊。其中,源服務(wù)器模塊由Nginx提供支持,反向代理分發(fā)模塊由Squid提供支持,最后的智能DNS分流模塊由View模塊實現(xiàn)。功能模塊圖如圖1所示。
軍事智能化是一把雙刃劍,一方面,它在很多領(lǐng)域能代替人類完成艱難險重的任務(wù),使部隊官兵從繁雜的事務(wù)中解脫出來,將科技作為第一戰(zhàn)斗力、核心戰(zhàn)斗力的貢獻率大幅提高;另一方面,它也可以為恐怖分子和邪教組織所用,對人類實施恐怖襲擊,給社會造成不可挽回的危害。同時,隨著智能機器人技術(shù)的發(fā)展,它本身也會成為一個獨立的行為個體。倘若智能機器人脫離了人類的控制,也存在著做出反人類行為的可能性。因此,我們對智能武器可能出現(xiàn)的危害性也要高度警惕,并建立完善的預(yù)防處置方案,防患于未然或?qū)⑽:p失降到最低。
圖1 架構(gòu)功能模塊圖
源服務(wù)器模塊:后臺真實的服務(wù)器組,上面運行WEB等的其他服務(wù)。
反向代理模塊:通過Squid技術(shù)把源服務(wù)器的資源同步到不同地方的代理服務(wù)器上,并向用戶提供服務(wù)。
智能DNS模塊:當(dāng)用戶請求網(wǎng)絡(luò)資源時,DNS會通過之前配置好的View視圖去智能匹配和分發(fā),把離用戶最近的網(wǎng)絡(luò)資源返回給用戶。
通過上述三個模塊的配合實現(xiàn),比如當(dāng)太原的網(wǎng)民訪問優(yōu)酷網(wǎng)時,域名服務(wù)器可以解析為北京本地的優(yōu)酷網(wǎng)服務(wù)器,江蘇地區(qū)的網(wǎng)民訪問優(yōu)酷網(wǎng)時,域名服務(wù)器將會把上海的優(yōu)酷網(wǎng)服務(wù)器IP地址作為結(jié)果返回給用戶。這樣,所有人訪問優(yōu)酷網(wǎng)查看網(wǎng)頁時,總是可以連接自己最近的服務(wù)器。
本架構(gòu)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖如圖2所示。
圖2 網(wǎng)絡(luò)拓撲圖
(1)源服務(wù)器組
拓撲圖中的Web1和Web2是后臺的真實服務(wù)器組群,把要運行的服務(wù)如Web服務(wù)全跑在它們上面,它們上面的資源應(yīng)該是一致的[4]。
(2)代理服務(wù)器組
拓撲圖中的代理服務(wù)器在地理位置上是不同的并且是相互獨立的。通過Squid技術(shù)可以把真實服務(wù)器中的網(wǎng)絡(luò)資源同步下載到代理服務(wù)器中。所以當(dāng)用戶訪問服務(wù)器的時候其實并不是真實服務(wù)器在工作,而是代理服務(wù)器在工作。這樣的好處是把真實服務(wù)器隱藏在后臺,用戶看不到也鏈接不上,這樣就大大提高用戶響應(yīng)時間,降低DDOS的惡意攻擊,為服務(wù)器的安全和可靠提供了保證。
(3)DNS服務(wù)器組
拓撲圖中的DNS服務(wù)器在整個架構(gòu)中充當(dāng)一個流水線的“分揀工”。通過View視圖的配置它會智能識別來自不同地區(qū)用戶的網(wǎng)絡(luò)請求,最終的結(jié)果是離用戶最近的代理服務(wù)器發(fā)送網(wǎng)絡(luò)資源給用戶,在用戶的層面是根本察覺不到的。這樣做的好處是大大提高了用戶的訪問效率,提高了用戶上網(wǎng)體驗度。
使用7臺Linux主機部署CDN環(huán)境架構(gòu),使用Nginx作為后端源Web服務(wù)器,Squid作為各地區(qū)反向代理服務(wù)器,BIND作為分離解析DNS服務(wù)器,本網(wǎng)絡(luò)架構(gòu)的虛擬實現(xiàn)部署的總體方案安排如下[5]:
DNS服務(wù)器(172.16.0.254):dns254.ycu.com反向代理服務(wù)器(172.16.0.100):squid100.yc.com反向代理服務(wù)器(172.16.0.200):squid200.ycu.com Web1服務(wù)器(172.16.0.10):web10.ycu.com Web2服務(wù)器(172.16.0.20):web20.ycu.com測試客戶機01(172.16.0.1):pc01.ycu.com測試客戶機02(172.16.0.2):pc02.ycu.com
實現(xiàn)此案例需要按照如下步驟進行:
(1)使用yum安裝基礎(chǔ)依賴包并使用源碼安裝LNMP環(huán)境軟件,使用源碼安裝Nginx軟件,使用源碼安裝mhash,libiconv,libmcrypt,php等;
(2)啟動相關(guān)服務(wù)。軟件安裝完畢后默認是沒有啟動的。軟件的啟動要按下面的順序來操作:首先啟動Nginx服務(wù)器,這里需要注意的是,如果服務(wù)器上已經(jīng)啟動了其他監(jiān)聽80端口的服務(wù)軟件(如httpd),則需要先關(guān)閉該服務(wù),否則會出現(xiàn)沖突;
(3)修改配置文件實現(xiàn)FastCGI功能。
在拓撲圖的設(shè)計中,反向代理服務(wù)器的設(shè)計目的在于:真正提供網(wǎng)絡(luò)服務(wù)的是代理服務(wù)器,這樣就把源服務(wù)器隱藏在用戶接觸不到的地方,大大提高了服務(wù)器的安全性和可靠性。代理服務(wù)器通過安裝Squid軟件會自動同步源服務(wù)器的網(wǎng)絡(luò)資源。部分具體實現(xiàn)代碼如下:為Squid100主機的IP。
通過部署DNS,會智能的分辨用戶的網(wǎng)絡(luò)請求。當(dāng)一個用戶發(fā)來上網(wǎng)請求后,DNS會根據(jù)用戶的源IP地址進行分類,給用戶分配一個距離他最近的代理服務(wù)器提供服務(wù)。具體實現(xiàn)代碼片段如下:
修改區(qū)域數(shù)據(jù)文件,添加域名解析記錄。注意因為需要實現(xiàn)分離解析,故此區(qū)域數(shù)據(jù)文件需要創(chuàng)建兩份,并且要求解析記錄要有所不同。具體實現(xiàn)代碼片段如下:
通過上述的三個模塊的設(shè)計與部署基本實現(xiàn)了CDN的架構(gòu)功能,通過異地PC1和異地PC2訪問www.ycu.com,通過服務(wù)器上的訪問記錄日志可知道是通過不同的代理服務(wù)器獲得的網(wǎng)絡(luò)資源。如果把這一CDN網(wǎng)絡(luò)架構(gòu)真正搭建在互聯(lián)網(wǎng)中,便可以實現(xiàn)企業(yè)網(wǎng)站的負載均衡,不同地區(qū)的用戶總是從離自己最近的代理服務(wù)器那里獲取所需的網(wǎng)絡(luò)資源。
[1]石建松.基于云計算的CDN流媒體分發(fā)平臺關(guān)鍵技術(shù)研究[J].華南理工大學(xué)學(xué)報,2012(7):30-37.
[2]楊明川.內(nèi)容分發(fā)網(wǎng)絡(luò)關(guān)鍵技術(shù)分析[J].電信科學(xué),2005(8):12-18.
[3]劉衛(wèi)寧,高龍.異構(gòu)云中面向集群負載均衡的任務(wù)調(diào)度策略[J].計算機應(yīng)用,2013(8):9-12.
[4]郭欣.構(gòu)建高性能Web站點(修訂版)[M].北京:電子工業(yè)出版社,2012.
[5]易柏勝.基于虛擬機動態(tài)變更機制的設(shè)計與實現(xiàn)[D].廣州華南理工大學(xué),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
運城學(xué)院協(xié)同創(chuàng)新研究項目[CI-2015018]
韓瑞東(1988-),男,山西運城人,碩士,助教,研究方向:軟件開發(fā)技術(shù)。
〔責(zé)任編輯 高?!?/p>