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