邵聞珠,張 麗
(1石河子大學(xué)網(wǎng)絡(luò)中心,石河子832003;2石河子大學(xué)信息工程學(xué)院,石河子832003)
基于Linux反向代理技術(shù)在校園網(wǎng)的研究與實(shí)現(xiàn)
邵聞珠1,張 麗2
(1石河子大學(xué)網(wǎng)絡(luò)中心,石河子832003;2石河子大學(xué)信息工程學(xué)院,石河子832003)
目前我國(guó)校園網(wǎng)采用NAT方式或代理技術(shù)解決了訪問(wèn)公眾網(wǎng)絡(luò)慢的問(wèn)題,但inter net用戶訪問(wèn)校園網(wǎng)服務(wù)器資源速度慢的問(wèn)題仍比較突出。本文提出以linux為平臺(tái)使用squid通過(guò)反代理技術(shù)解決該問(wèn)題。結(jié)果顯示:該技術(shù)能夠節(jié)省電信IP地址,而且可以有效保護(hù)內(nèi)部服務(wù)器,大大提高對(duì)校園網(wǎng)內(nèi)部資源訪問(wèn)速度。實(shí)踐表明該方法效果良好。
反向代理;代理;web服務(wù)器加速;squid;linux
目前,我國(guó)高校已解決了校園網(wǎng)用戶訪問(wèn)公眾網(wǎng)速度慢的問(wèn)題,但在公眾網(wǎng)訪問(wèn)高校資源仍然很慢,其原因是教育網(wǎng)與帶電信、網(wǎng)通等公眾網(wǎng)連接帶寬較低,不同網(wǎng)絡(luò)間資源互訪形成瓶頸,從而大大降低了用戶訪問(wèn)速度。為了解決此問(wèn)題,通常采用2種方法:1)采用雙鏈路,服務(wù)器安裝兩塊網(wǎng)卡,一塊連接教育網(wǎng),一塊連接公眾網(wǎng)。設(shè)置連接公眾網(wǎng)的路由為默認(rèn)路由,然后添加教育網(wǎng)所有地址的靜態(tài)路由,根據(jù)不同的源地址請(qǐng)求做出響應(yīng)。該方法的優(yōu)點(diǎn)是設(shè)置簡(jiǎn)單,易于維護(hù)。缺點(diǎn):每臺(tái)需要服務(wù)器均要占用2個(gè)IP地址,添加的靜態(tài)路由多,當(dāng)內(nèi)部部門(mén)服務(wù)器沒(méi)有放置在網(wǎng)絡(luò)中心時(shí),需要單獨(dú)建設(shè)與電信、網(wǎng)通等鏈路,成本較高;2)在總出口路由器或防火墻設(shè)置重定向功能。當(dāng)在公眾網(wǎng)訪問(wèn)內(nèi)部服務(wù)器時(shí),首先請(qǐng)求到達(dá)防火墻或路由器,然后重定向到內(nèi)部服務(wù)器。該方法優(yōu)點(diǎn)是當(dāng)多個(gè)服務(wù)器需要為雙出口時(shí),設(shè)置指向教育網(wǎng)的靜態(tài)地址只需要在路由器設(shè)置1次,從而節(jié)省IP地址,特別是節(jié)省了公眾網(wǎng)的地址數(shù)量。缺點(diǎn):同種服務(wù)實(shí)用相同端口只能重定向1次,而高校內(nèi)不同部門(mén)web站點(diǎn)較多,因而不能滿足用戶的需要[1-3]。
針對(duì)上述方法的缺陷,本文提出了一種基于linux通過(guò)squid[4]實(shí)現(xiàn)反向代理,通過(guò)設(shè)置1臺(tái)反代理服務(wù)器,可使公眾網(wǎng)用戶快速訪問(wèn)校園網(wǎng)內(nèi)部1臺(tái)或多臺(tái)服務(wù)器,并且具有較高的安全性[5]。
通常所指的代理是指在局域網(wǎng)內(nèi)架設(shè)代理服務(wù)器,指定代理監(jiān)聽(tīng)端口,當(dāng)用戶訪問(wèn)外部站點(diǎn)時(shí),http請(qǐng)求被傳遞給代理服務(wù)器(用戶在瀏覽器中設(shè)置好代理服務(wù)器地址),代理服務(wù)器監(jiān)聽(tīng)到代理請(qǐng)求后訪問(wèn)外部站點(diǎn)取回?cái)?shù)據(jù),并在本地緩存,當(dāng)其他用戶大再次訪問(wèn)該站點(diǎn)時(shí),代理服務(wù)器首先查詢緩存數(shù)據(jù),如果被命中,則直接從緩存中取出數(shù)據(jù)發(fā)送給用戶,從而大大提高訪問(wèn)速度,并且代理服務(wù)器是Inter net鏈路級(jí)網(wǎng)關(guān)所提供的一種重要的安全功能,它的工作主要在開(kāi)放系統(tǒng)互聯(lián) (OSI)模型的對(duì)話層,主要的功能有:1)連接Inter net與Intranet充當(dāng)防火墻;2)共享因特網(wǎng)連接,節(jié)省了IP地址;3)提高用戶訪問(wèn)速度,節(jié)約通信帶寬。
反向代理[6-7]即通常所說(shuō)的 web服務(wù)器加速,是一種通過(guò)在繁忙的web服務(wù)器和inter net之間增加一個(gè)高速的web緩沖服務(wù)器(即web反向代理服務(wù)器)來(lái)降低實(shí)際的web服務(wù)器的負(fù)載。web服務(wù)器加速(反向代理)是針對(duì)web服務(wù)器提供加速功能。其作為代理cache,但并不針對(duì)瀏覽器用戶,而針對(duì)1臺(tái)或多臺(tái)特定web服務(wù)器。實(shí)施反向代理,只要將reverse pr oxy cache設(shè)備放置在1臺(tái)或多臺(tái)web服務(wù)器前端即可。當(dāng)互聯(lián)網(wǎng)用戶訪問(wèn)某個(gè)web服務(wù)器時(shí),通過(guò)DNS服務(wù)器解析后的IP地址是reverse proxy server的IP地址,而非原始web服務(wù)器的IP地址,這時(shí)reverse pr oxy server設(shè)備充當(dāng)web服務(wù)器,瀏覽器可與其連接,無(wú)需再直接與web服務(wù)器相連,大量web服務(wù)工作量被卸載至反向代理服務(wù)。因此,其不但能夠防止外部網(wǎng)主機(jī)直接和web服務(wù)器直接通信帶來(lái)的安全隱患,而且能夠很大程度上減輕web服務(wù)器的負(fù)擔(dān),從而提高了用戶訪問(wèn)速度。
1.2.1 反向代理工作原理
動(dòng)態(tài)DNS技術(shù)是一種基于策略的更加智能化的動(dòng)態(tài)DNS,這種基于策略的動(dòng)態(tài)DNS的服務(wù)器可以根據(jù)用戶所在網(wǎng)絡(luò)的不同,返回不同的解析結(jié)果,對(duì)教育網(wǎng)用戶解析出教育網(wǎng)地址,對(duì)公眾網(wǎng)用戶解析出公眾網(wǎng)地址。當(dāng)用戶發(fā)出1個(gè)HTTP請(qǐng)求時(shí),通過(guò)動(dòng)態(tài)DNS將請(qǐng)求定向至反向代理服務(wù)器,由反向代理服務(wù)器處理請(qǐng)求[8-9]。反向代理一般只緩存可緩沖的數(shù)據(jù)(如ht ml網(wǎng)頁(yè)和圖片等),如果反向代理服務(wù)器中緩存了該請(qǐng)求的資源,則將該請(qǐng)求的資源直接返回給客戶端,否則反向代理服務(wù)器將向后臺(tái)的web服務(wù)器請(qǐng)求資源,然后將請(qǐng)求的應(yīng)答返回給客戶端,同時(shí)也將該應(yīng)答緩存至本地,供下一個(gè)請(qǐng)求者使用,squid正是基于這種原理實(shí)現(xiàn)反向代理技術(shù)。
圖1 反向代理工作拓?fù)鋱DFig.1 Anti-agent work topological diagram
架設(shè)1臺(tái)反向代理服務(wù)器,平臺(tái)采用linux,安裝squid。此反向代理服務(wù)器架設(shè)在校園網(wǎng)總出口旁路位置,實(shí)現(xiàn)反向代理技術(shù)主要目的是為了明顯提高公眾網(wǎng)絡(luò)訪問(wèn)內(nèi)部服務(wù)器的速度,因此2塊網(wǎng)卡、1塊連接在公眾網(wǎng),另一塊網(wǎng)卡安裝在總出口路由器旁路位置。架設(shè)1臺(tái)DNS服務(wù)器,并將此動(dòng)態(tài)DNS服務(wù)器配置成動(dòng)態(tài)DNS。將內(nèi)部需要實(shí)現(xiàn)加速訪問(wèn)的服務(wù)器域名均解析為反向代理服務(wù)器公眾網(wǎng)IP地址。設(shè)計(jì)原理圖如下:
圖2 反向代理實(shí)現(xiàn)設(shè)計(jì)圖Fig.2 Anti-agent work design diagram
石河子大學(xué)校園網(wǎng)內(nèi)部有多個(gè)web站點(diǎn),石河子大學(xué)經(jīng)貿(mào)學(xué)院主頁(yè)站點(diǎn)IP地址為219.247.1.11,招生辦主頁(yè)站點(diǎn),IP地址為202.201.166.125,教務(wù)處主頁(yè)站點(diǎn)IP地址為202.201.162.237,為了提高公眾網(wǎng)對(duì)內(nèi)部服務(wù)器的訪問(wèn)速度,設(shè)置了1臺(tái)反向代理服務(wù)器(平臺(tái)為L(zhǎng)inux,使用squid)連接內(nèi)部網(wǎng)絡(luò)網(wǎng)卡IP地址為192.168.1.2,連接公眾網(wǎng)為網(wǎng)卡IP地址為124.119.50.19.,見(jiàn)圖2。
圖3 實(shí)例實(shí)現(xiàn)拓?fù)鋱DFig.3 Actual implementation topological diagram
#./configure--prefix=/usr/local/squid--enable
epoll--disable-ident-l ookups-enable-async-io=
160--enable-storeio=ufs,aufs,diskd--enable-snmp--enable-cache-digests--enable-useragent--enable-killparent-h(huán)ack--disable-inter nal-dns
脊髓保護(hù)區(qū)兩個(gè)邊界不同畫(huà)法PTV適形度的指數(shù)對(duì)比差異無(wú)統(tǒng)計(jì)學(xué)意義(P>0.05),不同布野方式內(nèi)PTV適形度的指數(shù)對(duì)比差異有統(tǒng)計(jì)學(xué)意義(P<0.05),詳見(jiàn)表1。
#make
#make install
#vi/usr/local/squid/squid.conf
htt p_port 80//squid反向代理監(jiān)聽(tīng)的端口,
htt pd_accel_h(yuǎn)ost virt ual//反向代理多臺(tái)服務(wù)器時(shí)必須設(shè)置為virtual,若只代理1臺(tái)服務(wù)器則直接指定服務(wù)器IP地址
htt pd_accel_port 80//內(nèi)部 web服務(wù)的端口號(hào)
httpd_accel_with_proxy off//如果希望squid既作反向代理服務(wù)器又作本地機(jī)器的上網(wǎng)代理,需要將此設(shè)為on,默認(rèn)是off
httpd_accel_uses_h(yuǎn)ost_h(yuǎn)eader on//完成多個(gè)后臺(tái)web服務(wù)器的反向代理功能必須設(shè)置為on。
#/usr/local/squid/sbin/squid-k parse//測(cè)試配置是否正確
#/usr/local/squid/sbin/squid-z//首次啟動(dòng)必須執(zhí) 行 此 步 驟 建 立 s wap 目 錄 # /usr/l ocal/squid/sbin/squid//啟動(dòng)
如果使用/etc/hosts文件來(lái)實(shí)現(xiàn)內(nèi)部DNS(編譯時(shí)應(yīng)使用-disable-inter nal-dns選項(xiàng)),編輯/etc/hosts文件添加如下條目:
202.20 1.160.10 www.shzu.edu.cn
202.20 1.166.125 zb.shzu.edu.cn
202.20 1.162.137 j wc.shzu.edu.cn
啟用動(dòng)態(tài)DNS,對(duì)源地址為公眾網(wǎng)的域名解析時(shí),使3臺(tái)服務(wù)器的域名均指向反向代理服務(wù)器地址124.119.50.19,即:
www.shzu.edu.cn IN A 124.119.50.19;
zb.shzu.edu.cn IN A 124.119.50.19;
j wc.shzu.edu.cn IN A 124.119.50.19。
反向代理技術(shù)的應(yīng)用,使用戶通過(guò)公眾網(wǎng)訪問(wèn)我校校園網(wǎng)內(nèi)部服務(wù)器的速度明顯提高,使用前平均訪問(wèn)速度為120 ms,用代理服務(wù)器后平均訪問(wèn)速度為82 ms,同時(shí)還有效使保護(hù)了我校內(nèi)部服務(wù)器,并節(jié)約了緊缺的公眾網(wǎng)IP地址3個(gè)。反向代理技術(shù)能夠適應(yīng)多種應(yīng)用場(chǎng)合,顯示了較高的實(shí)用性。對(duì)該技術(shù)進(jìn)行測(cè)試的結(jié)果顯示,其運(yùn)行穩(wěn)定,效果良好。
[1]高新成.校園網(wǎng)多出口訪問(wèn)控制技術(shù)研究[J].長(zhǎng)江大學(xué)學(xué)報(bào):自然科學(xué)版,2010,7(2):284-286.
[2]倪曉艷.基于Windows 2000的多出口接入服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2006(4):66-68.
[3]張?jiān)拼?,王耀青,錢江紅.大型校園網(wǎng)多ISP連接的研究與實(shí)現(xiàn)[J].微機(jī)發(fā)展,2005,15(4):11-13.
[4]Terr y William Ogletree.防火墻原理與實(shí)現(xiàn)[M].李之棠.北京:電子工業(yè)出版社,2001.
[5]李蔚澤.Red Hat Linux 9網(wǎng)絡(luò)管理[M].北京:清華大學(xué)出版社,2003.
[6]鄭光勇,尹軍,朱賢友.用反向代理技術(shù)保護(hù) Web服務(wù)器的實(shí)現(xiàn)[J].計(jì)算機(jī)安全,2010(5):30-32.
[7]楊永健.反向代理軟件SQUID在高校圖書(shū)館中的應(yīng)用[J].四川圖書(shū)館學(xué)報(bào),2007(3):59-62.
[8]蔡昭權(quán).策略路由和動(dòng)態(tài)DNS在校園網(wǎng)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(5):1396-1398.
[9]邱建波.高校校園網(wǎng)雙出口環(huán)境下對(duì)DNS的智能改進(jìn)[J].微計(jì)算機(jī)應(yīng)用,2008,29(8):26-29.
Research and Realization of Anti-Agent in Campus Net wor k Based on Linux
SHAO Wenzhu1,ZHANG Li2
(1 Center of Co mputer Net wor k,Shihezi University,Shihezi 832000,China;2 College of Infor mation Science and Technology,Shihezi University,Shihezi 832000,China)
At present,by NAT or the agent technique in the campus net,the problem of slowness of visiting the public net has been solved;however,the problem of the slowness of resources when users visit the campus net wor k server is still serious.This paper advocates that using squid to solve the problem by means of anti-agent technique with linux as a platfor m not only saves teleco m IP addresses but also protect inner server,substantially i mproves the speed of visiting t he campus net resources.This method tur ns out to be effective after being employed.
anti-agent;proxy;web server acceleration;squid;linux
TP393.08;TP393.18
A
1007-7383(2011)03-0394-03
2011-04-07
國(guó)家科技支撐計(jì)劃項(xiàng)目(2007BAH12B01)
邵聞珠(1972-),男,副教授,從事網(wǎng)絡(luò)應(yīng)用研究;e-mail:shao@shzu.edu.cn。