Linux下Squid代理服務(wù)器的架設(shè)與維護(hù)
佚名 發(fā)表于:12年05月02日 14:04 [轉(zhuǎn)載] 51CTO
一、對(duì)使用者的分析
現(xiàn)有網(wǎng)絡(luò)情況:
我校校園網(wǎng)通過(guò)光纜已將31座建筑物連通,光纜總長(zhǎng)度約15Km,絕大多數(shù)樓中實(shí)現(xiàn)結(jié)構(gòu)化布線,連入校園網(wǎng)的網(wǎng)絡(luò)多媒體教室、教學(xué)基地、實(shí)驗(yàn)室、機(jī)房等約有數(shù)十個(gè),連網(wǎng)計(jì)算機(jī)達(dá)3000多臺(tái) 。我校目前出口有2個(gè),一條速率為10M bps,通過(guò)光纖接入中國(guó)教育科研網(wǎng)CERNET,另一條速率為4M bps連入中國(guó)電信。
用戶(hù)的需求:
我校校園網(wǎng)的使用者主體為在校學(xué)生及老師。根據(jù)統(tǒng)計(jì),約80%的用戶(hù)使用WWW、FTP等資源。我,F(xiàn)有Chinanet ip 126個(gè),不可能分給所有的用戶(hù)使用。通過(guò)架設(shè)代理服務(wù)器來(lái)實(shí)現(xiàn)讓所有用戶(hù)使用網(wǎng)絡(luò)資源是最簡(jiǎn)單并且相對(duì)安全和可靠的方法。通過(guò)架設(shè)專(zhuān)門(mén)的WWW(FTP)代理來(lái)滿足用戶(hù)的主要需求,通過(guò)架設(shè)socks5代理來(lái)滿足用戶(hù)的其他需求。
二、硬件及軟件的選擇
硬件
Cache Server可以是一臺(tái)普通的PC服務(wù)器加上cache軟件(如Squid、Inktomi)構(gòu)成,也可以是軟硬件系統(tǒng)和一臺(tái)專(zhuān)門(mén)的cache服務(wù)器。根據(jù)Chinanet出口的實(shí)際情況,4Mbps速率的出口,每秒最大傳入數(shù)據(jù)量為約500K/s。我校主干網(wǎng)節(jié)點(diǎn)間為雙千兆連接,到達(dá)部分實(shí)驗(yàn)室是百兆,到達(dá)宿舍為10M。送出的最大數(shù)據(jù)量為約12M/s。傳送的數(shù)據(jù)量不是很大,使用傳統(tǒng)的IA32構(gòu)架服務(wù)器既可滿足需求。我校網(wǎng)絡(luò)中心主機(jī)房使用機(jī)柜來(lái)存放服務(wù)器;萜展镜腖H6000服務(wù)器,具有很強(qiáng)的擴(kuò)展性,是新型的六路服務(wù)器。代理服務(wù)器的運(yùn)算負(fù)荷不是很重,對(duì)于IO的要求較高。LH6000通過(guò)自定義配置可以達(dá)到這個(gè)要求。通過(guò)使用raid可以提高磁盤(pán)性能,增加數(shù)據(jù)的可靠性。代理服務(wù)器軟件占用內(nèi)存較大。LH6000可以支持8GB內(nèi)存。最終選擇配置如下:
配置
處理器:Intel Xeon 處理器
內(nèi)存:2G
磁盤(pán)控制器:集成具有32MB高速緩存雙通道Ultra3 SCSI HP NetRAID控制器
附加單通道:Ultra Wide SCSI控制器
內(nèi)置存儲(chǔ):熱插拔5x18G半高驅(qū)動(dòng)器
網(wǎng)卡:內(nèi)置INTEL 82559 100M網(wǎng)卡
電源:3個(gè)熱插拔電源
RAID使用了RAID5模式,這個(gè)模式是向陣列中的磁盤(pán)寫(xiě)數(shù)據(jù),奇偶校驗(yàn)數(shù)據(jù)存放在陣列中的各個(gè)盤(pán)上,允許單個(gè)磁盤(pán)出錯(cuò)。RAID 5也是以數(shù)據(jù)的校驗(yàn)位來(lái)保證數(shù)據(jù)的安全,但它不是以單獨(dú)硬盤(pán)來(lái)存放數(shù)據(jù)的校驗(yàn)位,而是將數(shù)據(jù)段的校驗(yàn)位交互存放于各個(gè)硬盤(pán)上。這樣, 任何一個(gè)硬盤(pán)損壞,都可以根據(jù)其它硬盤(pán)上的校驗(yàn)位來(lái)重建損壞的數(shù)據(jù)。
軟件
Squid Internet Object Cache (Harvest Project的後續(xù)版本) 是美國(guó)政府大力助的一項(xiàng)研究計(jì)劃。Squid是一個(gè)開(kāi)放源代碼的代理服務(wù)器軟件。它是一個(gè)為UNIX系統(tǒng)下運(yùn)行的全功能的代理服務(wù)器軟件。它可以為HTTP協(xié)議、FTP協(xié)議以及其他使用URL方式定位的協(xié)議作緩存。它支持客戶(hù)端使用SSL協(xié)議進(jìn)行數(shù)據(jù)傳送。它可以使用ICP, HTCP, CARP, Cache Digests等協(xié)議和方式和其他運(yùn)行squid的服務(wù)器進(jìn)行協(xié)同。它支持SNMP協(xié)議,可以用相應(yīng)的軟件來(lái)做協(xié)調(diào)和管理。并且能配置詳細(xì)的訪問(wèn)控制列表(acl)。
操作系統(tǒng)
以前學(xué)校的代理服務(wù)器使用linux作為操作系統(tǒng)。這是因?yàn)橐郧暗拇矸⻊?wù)器通常還兼作其他的服務(wù)器。很多服務(wù)器軟件是專(zhuān)門(mén)為linux開(kāi)發(fā)的,或者在linux上運(yùn)行的效率最高。Squid本身是為unix-like操作系統(tǒng)開(kāi)發(fā)的。本身對(duì)系統(tǒng)沒(méi)有太多的要求。目前我校Chinanet代理服務(wù)器使用的是FreeBSD作為操作系統(tǒng)。
沒(méi)有選擇Linux有下面幾點(diǎn)原因:
Linux的核心部分開(kāi)發(fā)相對(duì)比較開(kāi)放,F(xiàn)reeBSD的核心是由一個(gè)嚴(yán)格的core team來(lái)完成的。相對(duì)檢查更加嚴(yán)格。從核心部分比較BSD的內(nèi)核更加穩(wěn)定。
Linux對(duì)高負(fù)荷的承載能力不如FreeBSD。對(duì)于高負(fù)荷下程序出錯(cuò)的容忍力,BSD遠(yuǎn)強(qiáng)于Linux。
許多著名的網(wǎng)站,如:yahoo, netease 等著名的商業(yè)網(wǎng)站使用的就是freebsd,穩(wěn)定性和性能早已通過(guò)很多專(zhuān)家的評(píng)測(cè),遠(yuǎn)遠(yuǎn)強(qiáng)于Linux。
在著名的文章“Linux vs BSD: A Tale of Two System”中,是這樣評(píng)價(jià)Freebsd的: FreeBSD focuses on the Intel Architecture PC and server platforms, and on providing the best performance and stability possible. The DEC/Compaq Alpha is also supported.
但是Freebsd也有不如Linux的弱點(diǎn)。主要表現(xiàn)在磁盤(pán)IO的性能上。這主要是因?yàn)镕reebsd使用的文件系統(tǒng)—UFS的性能不如linux上使用的ext2/ext3。但是在加上softupdate之后會(huì)有很大的改進(jìn)。而且出國(guó)代理上配置的使用raid5模式,磁盤(pán)使用高轉(zhuǎn)速scsi硬盤(pán),在上述硬件配置的情況下,讀取squid cache的數(shù)k大小的小文件使用ext2和ufs+softupdate的效率的差別在萬(wàn)分之一以下。對(duì)于負(fù)載數(shù)千用戶(hù)的代理服務(wù)器來(lái)說(shuō),可以忽略這樣的效率差別。
基于以上原因,最終選用Freebsd作為代理服務(wù)器的操作系統(tǒng)。
三、代理服務(wù)器軟件的安裝
squid的安裝
freebsd本身的ports程序帶有squid的穩(wěn)定版本。目前squid的最新版本是2.4.STABLE6。在freebsd的/usr/ports/www/squid 目錄下執(zhí)行make;make install就會(huì)將最新版本的squid代碼下載、編譯并最終安裝到/usr中的相應(yīng)路徑中。
Squid本身會(huì)被安裝到/usr/local/sbin下
Squid的cache目錄默認(rèn)為/usr/local/squid/cache
Squid的log目錄默認(rèn)為/usr/local/squid/logs
squid的配置文件目錄默認(rèn)為/usr/local/etc/squid
這樣的安裝方式比直接使用二進(jìn)制的package安裝要好。因?yàn)槎M(jìn)制的package不能保證在自定義的系統(tǒng)上穩(wěn)定運(yùn)行。下載源代碼代碼在本地進(jìn)行編譯之前,首先會(huì)校驗(yàn)源代碼的MD5 checksum,這樣能保證我得到的源代碼是未經(jīng)修改過(guò)的版本。然后再在本地進(jìn)行編譯。最后安裝到相應(yīng)目錄。
Squid的配置
Squid的配置文件是squid.conf
部分參數(shù)的配置如下:(為保證代理服務(wù)器安全,部分參數(shù)用*代替)
http_port 8080 設(shè)置http代理端口為8080 cache_peer pa.us.ircache.net sibling 3128 3130 login=*:*
cache_peer sj.us.ircache.net sibling 3128 3130 login=*:*
cache_peer * parent 13280 4827 htcp *:*
這幾行是使用squid可以和其他幾臺(tái)機(jī)器進(jìn)行協(xié)同工作的特性,同幾臺(tái)組成cache_peer。具體設(shè)置在后面的優(yōu)化部分會(huì)解釋。
公司簡(jiǎn)介 | 媒體優(yōu)勢(shì) | 廣告服務(wù) | 客戶(hù)寄語(yǔ) | DOIT歷程 | 誠(chéng)聘英才 | 聯(lián)系我們 | 會(huì)員注冊(cè) | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.