Squid代理服務器部署使用攻略 |
發(fā)布時間: 2012/8/13 11:20:19 |
Linux下的代理服務器軟件很多,但是被廣泛應用的只有Squid、socks、Apache等幾個實踐證明是高性能的代理軟件。
一、各種代理服務器的比較 表-1Linux下主流代理服務器比較
Squid是Linux下一個緩存Internet數(shù)據(jù)的代理服務器軟件,其接收用戶的下載申請,并自動處理所下載的數(shù)據(jù)。也就是說,當一個用戶想要下載一個主頁時,可以向Squid發(fā)出一個申請,要Squid代替其進行下載,然后Squid連接所申請網(wǎng)站并請求該主頁,接著把該主頁傳給用戶同時保留一個備份。當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,使用戶覺得速度相當快。目前,Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS協(xié)議,暫不能代理POP3、NNTP等協(xié)議。Squid可以工作在很多操作系統(tǒng)中,如AIX、Digital、Unix、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。Squid支持以下協(xié)議: 客戶端協(xié)議:HTTP、FTP、Gopher、WAIS、SSL 緩存及管理協(xié)議:ICP、CacheDigests、SNMP、HTCP
1.代理服務器的工作機制 代理服務器的工作機制很像我們生活中常常提及的代理商,假設你自己的機器為A機,你想獲得的數(shù)據(jù)由服務器B提供,代理服務器為C,那么具體的連接過程是這樣的。首先,A機需要B機的數(shù)據(jù),A直接與C機建立連接,C機接收到A機的數(shù)據(jù)請求后,與B機建立連接,下載A機所請求的B機上的數(shù)據(jù)到本地,再將此數(shù)據(jù)發(fā)送至A機,完成代理任務。 2.squid工作流程 圖1是Squid工作原理圖。
1.客戶端計算機向代理服務器端發(fā)送一個數(shù)據(jù)需求封包; 2.代理服務器端接收之后,先比對這個封包的『來源』與預計要前往的『目標』網(wǎng)站是否為可接受?如果來源與目標都是合法的,那么代理服務器端會預計開始替客戶端計算機獲取信息。 3.代理服務器首先會到自己的硬盤里面,也就是所謂的cache(緩存)查看一下有沒有客戶端計算機端所需要的數(shù)據(jù),如果有的話,那就將數(shù)據(jù)直接送到客戶端計算機端,而不向互聯(lián)網(wǎng)獲取信息。 4.將數(shù)據(jù)傳回給客戶端計算機端使用。 5.在經(jīng)過以上三部查尋知道緩存沒有數(shù)據(jù),或者數(shù)據(jù)過期之后,代理服務器會向互聯(lián)網(wǎng)上面的目標網(wǎng)站要求數(shù)據(jù); 6.在將數(shù)據(jù)取回之后,代理服務器會先將取得的數(shù)據(jù)儲存一份到緩存當中。 7.最后才將數(shù)據(jù)傳回給客戶端計算機端使用。 通常說來,安裝Squid有兩種方法:一是從Linux發(fā)行版本中獲取該軟件的RPM包進行;二是安裝從Squid的官方站點http://www.squid-cache.org/下載該軟件的源碼進行編譯后安裝。目前網(wǎng)上最新的穩(wěn)定版本為squid-2.6.STABLE10,下面以前者為例進行介紹。首先要確認是否已經(jīng)安裝vsftpd可以使用以下命令查看: [rpm-qsquid] 如果在系統(tǒng)安裝時已經(jīng)把squid安裝上了,那么我們就可以直接對squid配置使用了。 也可以從Squid站點www.squid-cache.org獲取該軟件的源代碼安裝包,包括gz和bz2兩種壓縮方式。 配置并保存好squid.conf后,可以用以下命令啟動squid。 或者,使用RHEL4.0的啟動腳本來啟動squid。 /etc/rc.d/init.d/squidstart 同樣,也可以用下列腳本停止運行squid或重啟動squid。 /etc/rc.d/init.d/squidstop /etc/rc.d/init.d/squidrestart 判斷squid已經(jīng)正常啟動方法:分別使用ps命令和netstat命令檢查Squid代理組服務器允許情況,和端口使用情況,見圖-2。
圖-2查看Squid服務器運行進程和端口 如果你的Linux服務器終端桌面出現(xiàn)圖2類似的情況表示Squid代理服務器運行正常。 理解Squid配置文件 Squid配置文件由一組文件組成見表2。
其中最重要的是squid.conf,squid.conf配置文件可以分為十三個部分,這十三個部分分別是: 1)NETWORKOPTIONS(有關的網(wǎng)絡選項)。 2)OPTIONSWHICHAFFECTTHENEIGHBORSELECTIONALGORITHM(作用于鄰居 選擇算法的有關選項)。 3)OPTIONSWHICHAFFECTTHECACHESIZE(定義cache大小的選項)。 4)LOGFILEPATHNAMESANDCACHEDIRECTORIES(定義日志文件的路徑cache的目錄)。 5)OPTIONSFOREXTERNALSUPPORTPROGRAMS(外部支持程序選項)。 6)OPTIONSFORTUNINGTHECACHE(調(diào)整cache的選項)。 7)TIMEOUTS(超時)。 8)ACCESSCONTROLS(訪問控制)。 9)ADMINISTRATIVEPARAMETERS(管理參數(shù))。 10)OPTIONSFORTHECACHEREGISTRATIONSERVICE(cache注冊服務選項)。 11)HTTPD-ACCELERATOROPTIONS(HTTPD加速選項)。 12)MISCELLANEOUS(雜項)。 13)DELAYPOOLPARAMETERS(延時池參數(shù))。 理解squid的命令啟動參數(shù) Squid有很多命令參數(shù),見圖-3。
圖-3squid命令選項 對于Squid命令這里需要了解其參數(shù),在開始其他事情之前,讓我們先看一下squid的命令行選項。這里的許多選項你會經(jīng)常使用,另外有些僅僅在調(diào)試問題時有用。 squid命令行選項 -aport: 指定新的http_port值。該選項覆蓋了來自squid.conf的值。然而請注意,你能在quid.conf里指定多個值。-a選項僅僅覆蓋配置文件里的第一個值。(該選項使用字母a是因為在Harvestcache里,HTTP端口被叫做ASCII端口)。 -dlevel: 讓squid將它的調(diào)試信息寫到標準錯誤(假如配置了,就是cache.log和syslog)。level參數(shù)指定了顯示在標準錯誤里的消息的最大等級。在多數(shù)情況下,d1工作良好。 -ffile: 指定另一個配置文件。 -h: 顯示用法。 -kfunction 指示squid執(zhí)行不同的管理功能。功能參數(shù)是下列之一:reconfigure,rotate,shutdown,interrupt,kill,debug,check,orparse。 +reconfigure導致運行中的squid重新讀取配置文件。 +rotate導致squid滾動它的日志,這包括了關閉日志,重命名,和再次打開它們。 本文出自:億恩科技【1tcdy.com】 |