在一般的網(wǎng)絡規(guī)模中,在近客戶端,使用一臺性能較好的Cache代理服務器,就可以滿足內(nèi)部用戶的需求,減緩出口線路的擁堵問題。但如果內(nèi)部網(wǎng)絡已擴張到相當龐雜,用戶機器數(shù)量達到數(shù)萬臺,同一時間的URL請求可能達到上萬個,這種情況下極有可能造成單臺代理服務器無法及時處理,甚至癱瘓,代理服務器反而會成為新的瓶頸。
為了有效解決此類情況,我們可以在內(nèi)部網(wǎng)絡中布置多臺代理服務器,代理服務器之間構成Hierarchies(層次),協(xié)同工作,減緩負載,減輕線路壓力。
具體配置方法
下面結合我校的實際情況,說明層次代理服務器的架設方法。
圖1
圖1是校園網(wǎng)的拓撲結構,內(nèi)部網(wǎng)通過路由器,由兩個出口線路分別接入CERNET和CHINANET,最終匯入Internet。大多數(shù)的高校現(xiàn)在都采用這種多出口的方法,因為CERNET雖然可以給予高校合法的IP地址,但它多采用出國流量計費或包月制,費用較高且?guī)捰邢?而CHINANET、CNCNET等運營商的線路的包月費用相對較低,出口訪問速度較快。所以一般情況下使用CERNET作入口訪問及必要的出口訪問(如訪問教育資源),而使用CHINANET、CNCNET作大部分的出口訪問。
我校校園網(wǎng)在地理上分為多個區(qū)域,有圖書館及教學區(qū)、行政辦公區(qū)、學生宿舍區(qū)等,我們只拿出這三個區(qū)域做為例子。在這三個區(qū)域中分別放置一臺代理服務器,其域名分別為lib.Cache.lyac.edu.cn 、adm.Cache.lyac.edu.cn 、stu.Cache.lyac.edu.cn 。
其中,因為圖書館購買的學術期刊論文數(shù)據(jù)庫必須是合法IP(有的要求固定IP)才能訪問查詢,并且校園網(wǎng)也需要訪問CERNET上的許多教育資源,所以把它的默認出口線路放到CERNET上,使用合法IP地址;其它兩個區(qū)域的默認出口線路都放到CHINANET上,ISP通常不會給學校提供合法的IP,所以我們一般在這樣的Cache上使用兩塊網(wǎng)卡,一塊使用內(nèi)網(wǎng)虛地址,另一塊使用ISP提供的虛地址,這樣就可以連接到ISP,再由其轉(zhuǎn)發(fā)。
Cache Server可以是在一臺普通的服務器加上Cache軟件構成,也有由專用的軟硬件系統(tǒng)構成的商業(yè)Cache服務器(如CacheFlow)。我校的代理服務器使用Squid。Squid代理服務器使用Squid.conf作為配置文件,單臺代理服務器的應用配置——特別是ACL和http_access的配合使用方法,有很多參考資料,這里不再贅敘,我們只講squid.conf文件中和Cache層次有關的常用配置選項,其詳細用法參看squid文檔。
下面列出三個區(qū)域Cache中的只有和層次有關的配置內(nèi)容,其中結合ACL的配置方法多種多樣,例如可以使用icp_access、 miss_access控制外部Cache的請求權限;有些配置選項的使用結果也是相似的。“#”號開頭的為注釋。
(1) 圖書館及教學區(qū)Cache的配置
http_port 3128
icp_port 3130
#定義其它兩個區(qū)域的Cache和自己的關系
Cache_peer adm.Cache.lyac.edu.cn sibling 3128 3130
Cache_peer stu.Cache.lyac.edu.cn sibling 3128 3130
#設定只有非.edu.cn域的URL自己沒有時才請求其它兩個區(qū)域的Cache幫助
Cache_peer_domain adm.Cache.lyac.edu.cn !.edu.cn
Cache_peer_domain stu.Cache.lyac.edu.cn !.edu.cn
#10.10.0.0/16是校園網(wǎng)使用的內(nèi)網(wǎng)虛地址
acl LocalNetIPVIR src 10.10.0.0/16
#210.44.48.0/20是校園網(wǎng)使用的合法IP地址
acl LocalNetIPTRUE src 210.44.48.0/20
#.lyac.edu.cn是校園網(wǎng)的域
acl LocalDomain srcdomain .lyac.edu.cn
acl all src 0.0.0.0/0.0.0.0
Cache_peer_access adm.Cache.lyac.edu.cn allow LocalNetIPVIR
Cache_peer_access adm.Cache.lyac.edu.cn allow LocalNetIPTRUE
Cache_peer_access adm.Cache.lyac.edu.cn allow srcdomain
Cache_peer_access stu.Cache.lyac.edu.cn allow LocalNetIPVIR
Cache_peer_access stu.Cache.lyac.edu.cn allow LocalNetIPTRUE
Cache_peer_access stu.Cache.lyac.edu.cn allow srcdomain
Cache_peer_access adm.Cache.lyac.edu.cn deny all
Cache_peer_access stu.Cache.lyac.edu.cn deny all
#設定只為本校的Cache提供層次服務,以防被局域網(wǎng)外的Cache非法利用
icp_access allow LocalNetIPVIR
icp_access allow LocalNetIPTRUE
icp_access allow srcdomain
icp_access deny all
(2)行政辦公區(qū)Cache的配置(Cache_peer_access的訪問控制列表同行政辦公區(qū))
http_port 3128
icp_port 3130
Cache_peer lib.Cache.lyac.edu.cn parent 3128 3130
Cache_peer stu.Cache.lyac.edu.cn sibling 3128 3130
#設定緩存中沒有.edu.cn的object時才請求lib.Cache.lyac.edu.cn協(xié)助抓取
Cache_peer_domain lib.Cache.lyac.edu.cn .edu.cn
Cache_peer_domain stu.Cache.lyac.edu.cn !.edu.cn
(3)學生宿舍區(qū)Cache的配置內(nèi)容大致同行政辦公區(qū),從略。
外部網(wǎng)絡上有一些免費的可用來組成層次的Cache,如圖1所示,可以申請代理服務器D(CERNET上)和E(Internet上)作為您的parent 或sibling,在申請獲得通過后就可以在本地Cache上設置peer關系得到object。
層次代理服務器有效解決了局域網(wǎng)規(guī)模太大時多臺代理服務器的協(xié)調(diào)工作問題,更加有效地節(jié)約帶寬,優(yōu)化網(wǎng)絡中的信息流動,保障網(wǎng)絡的正常健康運行。