在一般的網絡規模中,在近客戶端,使用一臺性能較好的Cache代理服務器,就可以滿足內部用戶的需求,減緩出口線路的擁堵問題。但假如內部網絡已擴張到相當龐雜,用戶機器數量達到數萬臺,同一時間的URL請求可能達到上萬個,這種情況下極有可能造成單臺代理服務器無法及時處理,甚至癱瘓,代理服務器反而會成為新的瓶頸。
為了有效解決此類情況,我們可以在內部網絡中布置多臺代理服務器,代理服務器之間構成Hierarchies(層次),協同工作,減緩負載,減輕線路壓力。
具體配置方法
下面結合我校的實際情況,說明層次代理服務器的架設方法。

圖1
圖1是校園網的拓撲結構,內部網通過路由器,由兩個出口線路分別接入CERNET和CHINANET,最終匯入Internet。大多數的高校現在都采用這種多出口的方法,因為CERNET雖然可以給予高校合法的ip地址,但它多采用出國流量計費或包月制,費用較高且帶寬有限;而CHINANET、CNCNET等運營商的線路的包月費用相對較低,出口訪問速度較快。所以一般情況下使用CERNET作入口訪問及必要的出口訪問(如訪問教育資源),而使用CHINANET、CNCNET作大部分的出口訪問。
我校校園網在地理上分為多個區域,有圖書館及教學區、行政辦公區、學生宿舍區等,我們只拿出這三個區域做為例子。在這三個區域中分別放置一臺代理服務器,其域名分別為lib.Cache.lyac.edu.cn 、adm.Cache.lyac.edu.cn 、stu.Cache.lyac.edu.cn 。
其中,因為圖書館購買的學術期刊論文數據庫必須是合法IP(有的要求固定IP)才能訪問查詢,并且校園網也需要訪問CERNET上的許多教育資源,所以把它的默認出口線路放到CERNET上,使用合法IP地址;其它兩個區域的默認出口線路都放到CHINANET上,ISP通常不會給學校提供合法的IP,所以我們一般在這樣的Cache上使用兩塊網卡,一塊使用內網虛地址,另一塊使用ISP提供的虛地址,這樣就可以連接到ISP,再由其轉發。
Cache Server可以是在一臺普通的服務器加上Cache軟件構成,也有由專用的軟硬件系統構成的商業Cache服務器(如CacheFlow)。我校的代理服務器使用Squid。Squid代理服務器使用Squid.conf作為配置文件,單臺代理服務器的應用配置——非凡是ACL和http_access的配合使用方法,有很多參考資料,這里不再贅敘,我們只講squid.conf文件中和Cache層次有關的常用配置選項,其具體用法參看squid文檔。
下面列出三個區域Cache中的只有和層次有關的配置內容,其中結合ACL的配置方法多種多樣,例如可以使用icp_access、 miss_access控制外部Cache的請求權限;有些配置選項的使用結果也是相似的。“#”號開頭的為注釋。
(1) 圖書館及教學區Cache的配置
http_port 3128
icp_port 3130
#定義其它兩個區域的Cache和自己的關系
Cache_peer adm.Cache.lyac.edu.cn sibling 3128 3130
Cache_peer stu.Cache.lyac.edu.cn sibling 3128 3130
#設定只有非.edu.cn域的URL自己沒有時才請求其它兩個區域的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是校園網使用的內網虛地址
acl LocalNetIPVIR src 10.10.0.0/16
#210.44.48.0/20是校園網使用的合法IP地址
acl LocalNetIPTRUE src 210.44.48.0/20
#.lyac.edu.cn是校園網的域
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提供層次服務,以防被局域網外的Cache非法利用
icp_access allow LocalNetIPVIR
icp_access allow LocalNetIPTRUE
icp_access allow srcdomain
icp_access deny all
(2)行政辦公區Cache的配置(Cache_peer_access的訪問控制列表同行政辦公區)
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協助抓取
Cache_peer_domain lib.Cache.lyac.edu.cn .edu.cn
Cache_peer_domain stu.Cache.lyac.edu.cn !.edu.cn
(3)學生宿舍區Cache的配置內容大致同行政辦公區,從略。
外部網絡上有一些免費的可用來組成層次的Cache,如圖1所示,可以申請代理服務器D(CERNET上)和E(Internet上)作為您的parent 或sibling,在申請獲得通過后就可以在本地Cache上設置peer關系得到object。
層次代理服務器有效解決了局域網規模太大時多臺代理服務器的協調工作問題,更加有效地節約帶寬,優化網絡中的信息流動,保障網絡的正常健康運行。
新聞熱點
疑難解答