歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Squid基礎與配置

Squid基礎與配置

日期:2017/2/27 9:39:50   编辑:更多Linux

 作 者: 戴專    一、Squid入門       1.Squid是什麼?       Squid是一種用來緩沖Internet數據的軟件。它是這樣實現其功能的,接受來自人們需要下載的目標(object)的請求並適當地處理這些請求。也就是說,如果一個人想下載一web頁面,他請求Squid為他取得這個頁面。Squid隨之連接到遠程服務器(比如:http://squid.nlanr.net/)並向這個頁面發出請求。然後,Squid顯式地聚集數據到客戶端機器,而且同時復制一份。當下一次有人需要同一頁面時,Squid可以簡單地從磁盤中讀到它,那樣數據迅即就會傳輸到客戶機上。當前的Squid可以處理HTTP,FTP,GOPHER,SSL和WAIS等協議。但它不能處理如POP,NNTP,RealAudio以及其它類型的東西。       2.Internet緩沖的一些概念       你可能會想到一些問題:緩沖有多大的用處?什麼時候目標(object)應該或者不應該被緩沖?例如,緩沖信用卡號碼是完全不適合的,腳本文件的執行結果在遠程服務器端,站點經常更新(象www.cnn.com)或者甚至站點不允許緩沖,這些情況也都是不適合緩沖的。       Squid處理各種情況是不錯的(當然,這需要遠程站點按標准形式工作)。       可執行的cgi-bin腳本文件不被緩沖,返回正確頁眉的頁面是在一段限制了的時間內被緩沖,而且你可以規定特殊的規則以確定什麼是可以或不可以被緩沖的,還有緩沖的時間為多長。       談到緩沖的用處有多大,這要看Internet的容量大小,各有不同。對於小型的緩沖區(幾轉磁盤空間)來說,返回值非常高(達到25%)。這個空間緩沖經常訪問的站點,如netscape,cnn和其它一些類似情況的站點。如果你增加一倍緩沖的磁盤空間,但你不會成倍增加你的命中率。這是因為你開始緩沖網絡中剩余部分時,這些通常時很大的而且很少被訪問。一個非常大的高速緩沖區,有20轉左右,可能返回值仍小於50%,除非你對保存數據的時間長短經常改變(一般地你不要分配20轉的磁盤空間,因為頁面很快就會過時,應該被刪除掉)。       我們在這裡說的目標(object)指的是可保存的web頁面或其它類似的可下載頁面(ftp文件或目錄內容也稱為目標(object))。       3.Squid運行在什麼系統上?       Squid可運行在大多數Unix和OS/2版本的系統之上,已知的可工作的有:       AIX,Digital Unix,FreeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris     二、編譯安裝Squid       1.Squid的未編譯版本       我不能保證你能發現所有的Squid的未編譯版本。在ftp:squid.nlanr.net上你可以找到一些未編譯的版本,盡管它們可能不是最新的版本。       Squid一般很容易編譯,這是因為它本身可以自動配置。唯一真正的問題是是否在你的機器上有一個編譯器。這可能發生在:你購買了商業OS但是它未包括標准的開發選項。你可能考慮在這種情況下裝一個GNU的編譯器,如果你在/usr/include下有必需的文件的話。你另外一個選擇可能是請求別人的幫助。你也許需要查看“tracker database”以找到在你附近運行Squid的某人。假定他們有適合的硬件,他們很可能會幫助你的。       1. 開始編譯之前       運行Squid的最好方法(在我看來)是創建一個特定的用戶和組來運行它。我用相同的名字創建了一個Squid用戶和一個Squid組,並設置用戶的home目錄為/usr/local/squid。然後我用su 轉到Squid用戶,這樣文件就都由Squid以及Squid組所有(Squid用戶主組必須為Squid)。隨後我下載Squid源文件到/usr/local/squid/src並解包。       這可能不是最好的安裝Squid到你的系統上的方法,但是,如果多個用戶將使用squid,你可以把他們都放在Squid組中。(當然,如果你不理解我所說的,盡可以用你自己的名義去安裝,不要以root方式,否則,你將給你的機器帶來安全上的危險。)       2. 獲得源碼       Squid的源始站點是squid.nlanr.net。這裡還有許多其它的鏡像站點,你可以考慮從你本地的鏡像站點獲得它,或者在archie服務器上搜索。一旦你已經下載了(一般放在/usr/local/squid/src/下),你可以用以下命令解壓:   gzip -cd squid-tar.gz-fil tar xv 或者 tar zxvf squid-tar.gz-fil   這將創建類似於以下行的目錄:/usr/local/squid/src/squid-1.1.13/(依版本而定)。       3. 編譯Squid       以下是編譯Squid的一般指令。你可能還要做其它的事以編譯Squid到你的系統上。通常你可以運行一個配置腳本文件,它指明了你的系統設置和你機器上的標題文件。這樣,在解壓和解包文件後。cd 到/usr/local/squid/src/squid-version/下並輸入:   ./configure       這裡假定你准備安裝Squid到/usr/local/squid下。你也可以用下面的方法修改你的安裝目錄:   ./configure -prefix=/some/other/Directory       然後你可能要敲入:make 以及 如果編譯一切正常時,輸入make install。這將生成在後面將要描述的目錄並安裝文件到目錄下。     三、Squid的基本配置       1. 目錄結構        Squid通常創建幾個目錄。它們一般如下:   /usr/local/squid   /bin   /cache   /etc   /logs/   /src (這是我們早些時候創建的)   /bin包括Squid本身的程序,以及其它程序如ftpget,它可以被Squid用來執行各種功能。   /cache/目錄是實際緩沖數據的存放區。你可能要考慮把剩余緩沖放到不同分區去,或甚至是不同的磁盤。它包含的目錄如以下行的形式:/00/ /01/ /02/ 和/03/ 這些又包括更多的子目錄,最終是緩沖的實際數據。存儲數據在多個目錄下意味著從大的緩沖區取數據仍然很快,因為你的操作系統要讀一個包含10000個文件的目錄會需要很長的時間。   /etc/包含squid.conf文件,它是唯一的Squid配置文件。   /logs/目錄可能會很大,特別是如果你包含同屬時,它們會查詢你每一次連接,這可以使你的log文件雙倍增加。注意在cache目錄下也有一個/log/文件,但是你不能刪除或移動它。它是上面討論的/usr/local/squid/cache/目錄的一個索引。(這與IE的cache有些相似。)   /src/一般包括你運行Squid版本的源文件。       2. 基本配置       所有的Squid配置集中到一個文件----squid.conf。下面將詳細討論僅作為一個緩沖代理服務器的Squid的配置,而不是把它作為一個http加速器。       以下是一個最基本的配置文件:   #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     #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   #otherwise, you can uncomment the below line and comment the one out.   # this will run as use "nobody" with the group "nogrtoup"   cache_effective_user nobody nogroup       這個配置允許所有的人訪問緩沖區,並創建一個100M的緩沖區,使用8M的內存,保持最小型的logs,而且存儲所有文件到默認區域,這一般指的是所有文件將以Squid用戶,Squid組的名義存儲到“/usr/local/squid/cache”中。所有客戶請求將來自於3128端口,並且所有“內部緩沖(inter-cache)”流量將走UDP端口3130。注意這個配置文件允許所有人訪問你的緩沖機器,這可能不是你所希望的,但是至少它可以正常工作。       3. 運行Squid       Squid由一個腳本正常運行,這個腳本在它的進程死掉後重啟Squid。這裡有腳本的兩種版本:/usr/local/squid/bin/RunCache 和 /usr/local/squid/bin/RunAccel 。   RunCache腳本一般在前台運行,所以啟動Squid,輸入以下內容:   % /usr/local/squid/bin/RunCache& %   然後用以下命令查看主Squid log文件/usr/local/squid/logs/cache.log   % more /usr/local/squid/logs/cache.log       你將看到Squid啟動的相關信息,如下行所示:   97/02/24 19:34:52 Starting Squid Cache version 1.1.10 for i586-pc-linux-gnu...   97/02/24 19:34:52 With 256 file descriptors available   97/02/24 19:34:52 Initializing IP Cache...   如果你沒有看見任何關於FATAL錯誤的信息,Squid現在就可以很高興地在你的機器上運行了。       下面將配置你的浏覽器,你可以好好地試一下哦!       4. 客戶端軟件的基本配置        以下是針對浏覽器的基本配置:        Netscape(4.5以上版本):   從Edit菜單項中選擇Preferences項。在Advanced中Proxies頁,點擊按鈕進入Proxy配置手冊,然後再點擊View按鈕。對每項你的Squid服務器支持的協議項(默認有HTTP,FTP和gopher等)中填入Squid服務器的主機名或IP地址,同時在Port欄中填入Squid服務器的HTTP端口號(默認為3128)。對你的Squid不支持的協議,可以讓這些欄空著。       IE(5.0以上中文版本):   在工具菜單項中選擇Internet選項,然後點擊連接頁,再按局域網設置按鈕選擇使用代理服務器選項,進入高級項目編輯。然後可以看到與Netscape代理服務器設置類似的界面,按照前面所述的方法分別填入相應項即可。       一般Unix下配置:       如果你使用可以允許你訪問web的Unix程序(包括wget,lynx和mosaic等),你可以設置shell變量,通過這些變量可以配置好代理。       如果你使用的shell是tcsh或csh,命令如下:   % setenv http_proxy http://mycache.example.com:3128/   % setenv gopher_proxy http://mycache.example.com:3128/   % setenv ftp_proxy http://mycache.example.com:3128/       現在你就可以使用你的浏覽器與緩沖連接以下載頁面了。為了檢查通過緩沖是否工作正常,可以查看/usr/local/squid/logs/access.log文件的內容,使用命令如下:more /usr/local/squid/logs/access.log。你可以看到所有你進行的訪問信息都顯示在該文件中。   






Copyright © Linux教程網 All Rights Reserved