作爲眼下最流行的操做系統,Linux已經愈來愈受到世人的關注。雖然目前Linux的軟件還不是很豐富,替代WINDOWS做爲普通PC機操做系統還爲時過早,可是在服務器領域,Linux的穩定性,可操做性決不輸於任何操做系統,而且也有優秀的軟件支持 。Squid就是其中之一。Linux加Squid的組合作爲代理服務器,性能遠遠超過WINNT加MSPROXY2.0(我的觀點),爲幾百人的小型局域網代理綽綽有餘。下面,我就詳細的介紹Squid的安裝及使用技巧,但願你們可以喜歡上它。
1.Squid簡介 git
Squid是一個緩存internet數據的一個軟件,它接收用戶的下載申請,並自動處理所下載的數據。也就是說,當一個用戶象要下載一個主頁時,它向Squid發出一個申請,要Squid替它下載,而後Squid鏈接所申請網站並請求該主頁,接着把該主頁傳給用戶同時保留一個備份,當別的用戶申請一樣的頁面時,Squid把保存的備份當即傳給用戶,使用戶以爲速度至關快。目前,Squid 能夠代理HTTP, FTP, GOPHER, SSL 和 WAIS 協議,暫不能代理POP, NNTP等協議。不過,已經有人開始修改Squid,相信不久的未來,Squid可以代理這些協議。 緩存
Squid可以緩存任何數據嗎?不是的。象緩存信用卡賬號、能夠遠方執行的scripts、常常變換的主頁等是不合適的也是不安全的。Squid能夠自動的進行處理,你也能夠根據本身的須要設置Squid,使之過濾掉你不想要的東西。
Squid能夠工做在不少的操做系統中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux, NetBSD, Nextstep, SCO, Solaris,OS/2等,也有很多人在其餘操做系統中從新編譯過Squid。
Squid對硬件的要求是內存必定要大,不該小於128M,硬盤轉速越快越好,最好使用服務器專用SCSI硬盤,處理器要求不高,400MH以上既可。
2. Squid的編譯和運行
其實如今的Linux發行套件中基本都有已經編譯好的Squid,你所做的就是安裝它既可。若是你手頭沒有現成的編譯好的Squid或想使用最新的版本,去ftp:squid.nlanr.net下載一份,本身編譯。
Squid的編譯是很是簡單的,由於它基本上是本身配置本身。最容易出現的問題是你的系統上沒有合適的編譯器,這能夠經過安裝相應的編譯器解決。若是出現其餘問題,你能夠問一下有經驗的用戶或到相應的郵件列表尋找幫助。
編譯Squid以前,最好建一個專門運行Squid的用戶和組。我就在本身的服務器上建了一個名爲squid的用戶和組,用戶目錄設爲/usr/local/squid。而後su爲用戶squid並從squid.nlanr.net下載Squid的源文件到目錄 /usr/local/squid/src中,用以下命令進行解壓: 安全
%tar xzf squid-2.0.RELEASE-src.tar.gz %cd /usr/local/squid/src/ squid-*.*.RELEASE / %./configure %make %make install |
第一個命令在目錄/usr/local/squid/src中產生一個新的子目錄/squid-*.*.RELEASE/。命令./configure會自動查詢你的系統配置狀況以及你係統中使用的頭文件。不加參數的./configure會把Squid安裝在目錄/usr/local/squid中,若是你想使用其餘目錄,用以下命令./configure --prefix=/some/other/directory,這會把Squid安裝在目錄/some/other/directory中。make命令編譯Squid,make install命令安裝Squid。
不出意外的話,目錄/usr/local/squid中會出現以下目錄: 服務器
/bin /cache /etc /logs/ /src (本身建立的) |
目錄/bin中含有Squid可執行程序,包括Squid自己,ftpget等。
目錄/cache包含Squid緩存的數據,其中包含象/00/ /01/ /02/ 以及/03/這樣的目錄,這些目錄中還有子目錄,由於目錄多了比在一個目錄成千上萬的文件中尋找一個文件更容易,速度更快。
目錄/etc中包含Squid的惟一的配置文件squid.conf。
目錄/logs中包含Squid的日誌。
3. squid.conf文件的配置
在安裝Squid後,在目錄/usr/local/squid /etc中會自動產生一個樣本squid.conf文件,文件中對每個選項都有詳細的說明,用戶能夠經過修改該文件以知足不一樣的須要。
總的來講,有以下幾個重要選項:
http_port:設定Squid監聽的端口,你最好設一個比較好記的端口號,以便在進行客戶機配置時容易記住。個人機器上端口號設的是8080。缺省爲3128。
cache_mem:設定Squid佔用的物理內存,根據個人經驗,cache_mem的大小不該超過你的服務器物理內存的三分之一,不然將會影響機器的整體性能。
maximum_object_size:設定Squid能夠接收的最大對象的大小。Squid缺省值爲4M,我本身入認爲太大,你能夠根據本身的須要進行設定。
cache_dir:設定緩存的位置、大小。通常看起來形式以下「cache_dir /usr/local/squid/cache 100 16 256」。 /usr/local/squid/cache表明緩存的位置;100表明緩存最大爲100M;16和256表明一級和二級目錄數。
cache_effective_user:設定使用緩存的有效用戶。缺省爲用戶nobody,若是你的系統中沒有用戶nobody,最好建一個或以非root用戶運行Squid。
下面我給出一個最簡單的squid.conf文件: 性能
#squid.conf - a very basic config file for squid #Turn logging to it's lowest level debug_options ALL,1 #defines a group (or Access Control List) that includes all IP addresses acl all src 0.0.0.0/0.0.0.0 #define RAM used cache_mem 32M #defines the cache size cache_dir /usr/local/squid/cache 100 16 256 #allow all sites to use connect to us via HTTP http_access allow all #allow all sites to use us as a sibling icp_access allow all #test the following sites to check that we are connected dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu #run as the squid user cache_effective_user squid squid |
這個配置文件容許全部人使用Squid,建立了100M緩存,使用32M內存,在缺省位置"/usr/local/squid/cache"緩存數據,全部緩存數據以組squid和用戶squid身份保存,端口爲3128。雖然這個配置很不安全,可是它已經能使用了。
4. 運行Squid
首先以root身份登錄。運行以下命令:
%/usr/local/squid/bin/squid ?z
該命令會產生Squid全部的緩存目錄。
若是你想前臺執行Squid,接着執行命令:
%/usr/local/squid/bin/squid -NCd1
該命令正式啓動Squid。若是一切正常,你會看到一行輸出
Ready to serve requests.
若是想後臺運行Squid,把它作爲一個精靈進程,執行命令:
%/usr/local/squid/bin/squid
觀察Squid是否運行使用命令:
% squid -k check
輸出會告訴你Squid的當前狀態。
好了,文章先寫到這裏,其實這裏介紹的都是最基本的東西,Squid有好多高級的功能,如作WEB服務器的高速緩存,作二級代理服務器,作爲防火牆,以及怎樣設定過濾規則等,這裏就不詳述了,若是有機會再奉獻給你們。(責任編輯:liucl) 網站