以前學(xué)校的代理服務(wù)器使用linux作為操作系統(tǒng)。這是因為以前的代理服務(wù)器通常還兼作其他的服務(wù)器。很多服務(wù)器軟件是專門為linux開發(fā)的,或者在linux上運行的效率最高。Squid本身是為unix-like操作系統(tǒng)開發(fā)的。本身對系統(tǒng)沒有太多的要求。目前我校Chinanet代理服務(wù)器使用的是FreeBSD作為操作系統(tǒng)。
沒有選擇Linux有下面幾點原因:
Linux的核心部分開發(fā)相對比較開放,F(xiàn)reeBSD的核心是由一個嚴(yán)格的core team來完成的。相對檢查更加嚴(yán)格。從核心部分比較BSD的內(nèi)核更加穩(wěn)定。
Linux對高負(fù)荷的承載能力不如FreeBSD。對于高負(fù)荷下程序出錯的容忍力,BSD遠(yuǎn)強于Linux。
許多著名的網(wǎng)站,如:yahoo, netease 等著名的商業(yè)網(wǎng)站使用的就是freebsd,穩(wěn)定性和性能早已通過很多專家的評測,遠(yuǎn)遠(yuǎn)強于Linux。
在著名的文章“Linux vs BSD: A Tale of Two System”中,是這樣評價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的弱點。主要表現(xiàn)在磁盤IO的性能上。這主要是因為Freebsd使用的文件系統(tǒng)—UFS的性能不如linux上使用的ext2/ext3。但是在加上softupdate之后會有很大的改進(jìn)。而且出國代理上配置的使用raid5模式,磁盤使用高轉(zhuǎn)速scsi硬盤,在上述硬件配置的情況下,讀取squid cache的數(shù)k大小的小文件使用ext2和ufs+softupdate的效率的差別在萬分之一以下。對于負(fù)載數(shù)千用戶的代理服務(wù)器來說,可以忽略這樣的效率差別。
基于以上原因,最終選用Freebsd作為代理服務(wù)器的操作系統(tǒng)。
三、代理服務(wù)器軟件的安裝
squid的安裝
freebsd本身的ports程序帶有squid的穩(wěn)定版本。目前squid的最新版本是2.4.STABLE6。在freebsd的/usr/ports/www/squid 目錄下執(zhí)行make;make install就會將最新版本的squid代碼下載、編譯并最終安裝到/usr中的相應(yīng)路徑中。
Squid本身會被安裝到/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安裝要好。因為二進(jìn)制的package不能保證在自定義的系統(tǒng)上穩(wěn)定運行。下載源代碼代碼在本地進(jìn)行編譯之前,首先會校驗源代碼的MD5 checksum,這樣能保證我得到的源代碼是未經(jīng)修改過的版本。然后再在本地進(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可以和其他幾臺機器進(jìn)行協(xié)同工作的特性,同幾臺組成cache_peer。具體設(shè)置在后面的優(yōu)化部分會解釋。