Linux下利用Squid構建高速的ProxyServ |
發(fā)布時間: 2012/8/11 11:04:10 |
一、什么是ProxyServer(代理服務器),Proxy的作用
在真實世界中我們常常會去幫人家辦一些事情,例如幫人家交電費什么的,在這種情況下你不是電表的主人,而是代辦者(代理者)的身份。在網絡世界中Proxy就是相當于那個幫人家交電費的人了,當我們發(fā)出連接請求的時候,就會通過Proxy去幫我們直接與目標服務器溝通,幫我們取得資料。 client通過ProxyServer上網的步驟如下: ①client端向Server發(fā)出請求。 ②Server收到請求后比較判斷Cache中時候存在client想要的資料,如果沒有則向遠程Server發(fā)送數據請求。 ③將請求回來的資料先存放到Cache中,再將資料傳送給client端。 ④當client發(fā)出的請求中所需要的資料在Cache中有,則將Cache中的資料直接傳送給client端。 雖然當第一訪問這向Proxy請求的數據Cache中沒有時,Proxy抓取數據后會先保存在Cache中,這樣訪問速度變慢了,可是第二個訪問者以及后來的訪問者需要該資料的時候,proxy都不要想遠程服務器請求,直接將cache中的資料發(fā)送給后來的請求者就行了,這樣就減少了連接遠程服務器的流量,另外由于proxy是在本地的,所以傳輸速度也更快。 二、使用Squid在構建ProxyServer 本文中筆者所使用的環(huán)境是: 操作系統:Redhat9.0,內核:2.4.20-31.9,其他系統套件已經通過apt更新到最新了。 1.編譯安裝Squid 由于Squid對系統硬件要求比較高,所以我們安裝的時候應盡量優(yōu)化。 CODE:#groupaddsquid#useraddsquid添加suqid用戶和用戶組 CODE:#exportCFLAGES=‘-O2-mcpu=pentium4-march=pentium4-mmmx-msse-msse2’ 可以根據你的CPU選擇相應的參數GCC-3.1以上可針對CPU最佳化:
prefix=/usr/local/squid:指定軟件的安裝路徑enable-gnuregex:由于Squid大量使用字符串處理做各種判斷,加入此項能更好的處理。 enable-icmp:加入icmp支持。 enable-kill-parent-hack:關掉suqid的時候,要不要連同父進程一起關掉,這個當然要啦。 enable-snmp:此選項可以讓MRTG使用SNMP協議對服務器的流量狀態(tài)進行監(jiān)測,因此必須選擇此項,使Squid支持SNMP接口。 disable-ident-lookups:防止系統使用RFC931規(guī)定的身份識別方法。 enable-cahce-digests:加快請求時,檢索緩存內容的速度。 enable-arp-acl:可以在規(guī)則設置中直接通過客戶端的MAC地址進行管理,防止客戶使用IP欺騙。 enable-err-language="Simplify_Chinese"和enable-default-err-languages="Simplify_Chinese":指定出錯是顯示的錯誤頁面為簡體中文 enable-poll:應啟用Poll()函數而不是select()函數,通常而言poll(輪詢)比select要好,但configure(腳本程序)已知Poll在某些平臺下失效,若你認為你比configure編譯配置腳本程序要聰明的話,可以用這個選項啟用Poll?傊褪怯眠@個可以提升性能就是啦。 enable-linux-netfilter:可以支持透明代理 enable-underscore:允許解析的URL中出現下劃先,因為默認squid會認為帶下劃線的URL地址是非法的,并拒絕訪問該地址。 這里我們就安裝好了,接下來就是修改配置文件了。 2.修改定義配置參數 下面是我的squid.conf文件
本文出自:億恩科技【mszdt.com】 |