quid 的首頁:http://www.squid-cache.org 摘自cu,針對RedHat Linux9
% cd /tmp
% tar xzvf /some/where/squid-2.5.STABLE4-src.tar.gz
一些tar 程序不支持z選項,該選項自動解壓gzip 文件。如果這樣,你需要運行如下命令:
% gzip -dc /some/where/squid-2.5.STABLE4-src.tar.gz tar xvf -
Squid 在高負載下,需要大量的內核資源。特別的,你需要給你的系統配置比正常情況更高的文件描述符和緩存。文件描述符的限制通常很惱人。你最好在開始編譯squid 之前來增加這些限制的大小。
文件描述符是一個簡單的整數,用以標明每一個被進程所打開的文件和socket。第一個打開的文件是0,第二個是1,依此類推。Unix 操作系統通常給每個進程能打開的文件數量強加一個限制。更甚的是,unix 通常有一個系統級的限制。
因為squid 的工作方式,文件描述符的限制可能會極大的影響性能。當squid 用完所有的文件描述符後,它不能接收用戶新的連接。也就是說,用完文件描述符導致拒絕服務。直到一部分當前請求完成,相應的文件和socket 被關閉,squid 不能接收新請求。當squid發現文件描述符短缺時,它會發布警告。
在運行./configure 之前,檢查你的系統的文件描述符限制是否合適,能給你避免一些麻煩。大多數情況下,1024 個文件描述符足夠了。非常忙的cache可能需要4096或更多。在配置文件描述符限制時,我推薦設置系統級限制的數量為每個進程限制的2 倍。
通常在你的Unix shell 中能找到系統的文件描述符限制。所有的C shell 及其類似的shell有內建的limit 命令。更新的Bourne shell 及其類似的shell 有一條叫做ulimit 的命令。為了發現你的系統的文件描述符限制,試運行如下命令:
sh$ ulimit -n
在Linux 上配置文件描述符有點復雜。在編譯squid 之前,你必須編輯系統include 文件中的一個,然後執行一些shell 命令。請首先編輯/usr/include/bits/typesizes.h 文件,改變__FD_SETSIZE 的值:
#define _ _FD_SETSIZE 8192
下一步,使用這個命令增加內核文件描述符的限制:
# echo 8192 > /proc/sys/fs/file-max
最後,增加進程文件描述符的限制,在你即將編譯squid 的同一個shell 裡執行:
sh# ulimit -Hn 8192
該命令必須以root 運行,僅僅運行在bash shell。不必重啟機器。
使用這個技術,你必須在每一次系統啟動後執行上述echo 和ulimit 命令,或者至少在squid 啟動之前。假如你使用某個rc.d 腳本來啟動squid,那是一個放置這些命令的好地方。
臨時端口是TCP/IP 棧分配給出去連接的本地端口。換句話說,當squid 發起一條連接到另一台服務器,內核給本地socket 分配一個端口號。這些本地端口號有特定的范圍限制。
臨時端口號的短缺對非常忙的代理服務器(例如每秒數百個連接)來說,會較大的影響性能。這是因為一些TCP 連接在它們被關閉時進入TIME_WAIT 狀態。當連接進入TIME_WATI 狀態時,臨時端口號不能被重用。
你能使用netstat 命令來顯示有多少個連接進入這個狀態:
% netstat -n grep TIME_WAIT
在Linux 上,簡單的寫一對數字到下列指定文件:
# echo "1024 40000" > /proc/sys/net/ipv4/ip_local_port_range
不要忘記將這些命令加到你的系統啟動腳本中,以使機器每一次重啟後都生效。
ls -l /usr/local/squid
total 5
drwxr-x--- 2 wessels wheel 512 Apr 28 20:42 bin
drwxr-x--- 2 wessels wheel 512 Apr 28 20:42 etc
drwxr-x--- 2 wessels wheel 512 Apr 28 20:42 libexec
drwxr-x--- 3 wessels wheel 512 Apr 28 20:43 man
drwxr-x--- 2 wessels wheel 512 Apr 28 20:42 sbin
drwxr-x--- 4 wessels wheel 512 Apr 28 20:42 share
drwxr-x--- 4 wessels wheel 512 Apr 28 20:43 var
.4.1 configure 選項
./configure 腳本有大量的不同選項,它們以-開始。當你敲入./configure --help 時,能看到選項的完整列表。一些選項對所有configure 腳本是通用的,還有一些是squid 專有的。下面是你可能用得到的標准選項:
--perfix =PREFIX
如前面描述的一樣,這裡設置安裝目錄。安裝目錄是所有可執行文件,日志,和配置文件的默認目錄。在整本書中,$prefix 指你選擇的安裝目錄。
--localstatedir =DIR
該選項允許你改變var 目錄的安裝位置。默認是$prefix/var,但也許你想改變它,以使squid 的磁盤緩存和日志文件被存儲在別的地方。
--sysconfdir =DIR
該選項允許你改變etc 目錄的位置。默認的是$prefix/etc。假如你想使用/usr 作為安裝位置,你也許該配置--sysconfdir為/etc.
以下是squid 的專有./configure選項:
--enable-dlmalloc[=LIB]
在一些系統上,內建的內存分配機制(malloc)在使用squid 時表現不盡人意。使用--enable-dlmalloc 選項將squid 源代碼包中的dlmalloc 包編譯和鏈接進來。假如你的系統中已安裝dlmalloc,你能使用=LIB 參數指定庫的路徑。請見http://g.oswego.edu/dl/Html/malloc.html更多關於dlmalloc 的信息。
--enable-gnuregex
在訪問控制列表和其他配置指令裡,squid 使用正則表達式作為匹配機制。GNU 的正則表達式庫包含在squid 的源代碼包裡;它可以在沒有內建正則表達式的操作系統中使用。./configure腳本偵察你系統中的正則表達式庫,假如必要,它可以激活使用GNU正則表達式。如果因為某些理由,你想強制使用GNU正則表達式,你可以將這個選項加到./configure命令後。
--enable-carp
Cache數組路由協議(CARP)用來轉發丟失的cache到父cache的數組或cluster。在10.9章有更多關於CARP的細節。
--enable-async-io[=N_THREADS]
同步I/O 是squid 技術之一,用以提升存儲性能。aufs 模塊使用大量的線程來執行磁盤I/O 操作。該代碼僅僅工作在linux 和solaris 系統中。=N_THREADS 參數改變squid 使用的線程數量。aufs 和同步I/O 在8.4 章中被討論。
請注意--enable-async-io 是打開其他三個./configure 選項的快捷方式,它等同於:
--with-aufs-threads=N_THREADS
--with-pthreads
--enable-storeio=ufs,aufs
--with-pthreads
該選項導致編譯過程鏈接到你系統中的P 線程庫。aufs 存儲模塊是squid 中唯一需要使用線程的部分。通常來說,如果你使用--enable-saync-io 選項,那麼不必再單獨指定該選項,因為它被自動激活了。
--enable-storeio=LIST
Squid 支持大量的不同存儲模塊。通過使用該選項,你告訴squid 編譯時使用哪個模塊。在squid-2.5 中,支持ufs,aufs,diskd,和null 模塊。通過查詢src/fs 中的目錄,你能得到一個模
塊列表。
LIST 是一個以逗號分隔的模塊列表,例如:
% ./configure --enable-storeio=afus,diskd,ufs
ufs 模塊是默認的,看起來問題最少。不幸的是,它性能有限。其他模塊可能在某些操作系統中不必編譯。關於squid 存儲模塊的完整描述,請見第8章。
--with-aufs-threads=N_THREADS
指定aufs 存儲機制使用的線程數量(見8.4章)。squid 默認根據緩存目錄的數量,自動計算需要使用多少線程。
--enable-heap-replacement
該選項不再使用,但被保留用於向後兼容性。你該使用--enable-removal-policies 來代替。
--enable-removal-policies=LIST
排除策略是squid 需要騰出空間給新的cache目標時,用以排除舊目標的機制。squid-2.5支持3個排除策略:最少近期使用(LRU),貪婪對偶大小(GDS),最少經常使用(LFU)。
然而,因為一些理由,./configure 選項使指定的替代策略和需要執行它們的基本數據結構之間的差別模糊化。LRU是默認的,它以雙鏈表數據結構執行。GDS和LFU使用堆棧的數據結構。
為了使用GDS 或LFU 策略,你指定:
% ./configure --enable-removal-policies=heap
然後你在squid 的配置文件裡選擇使用GDS或LFU。假如你想重新使用LRU,那麼指定:
% ./configure --enable-removal-policies=heap,lru
更多的關於替換策略的細節請見7.5 章。
--enable-icmp
如在10.5 章中描述的一樣,squid 能利用ICMP消息來確定回環時間尺寸,非常象ping程序。你能使用該選項來激活這些功能。
--enable-delay-pools
延時池是squid 用於傳輸形狀或帶寬限制的技術。該池由大量的客戶端IP 地址組成。當來自這些客戶端的請求處於cache 丟失狀態,他們的響應可能被人工延遲。關於延時池的更多細節請見附錄C。
--enable-useragent-log
該選項激活來自客戶請求的HTTP 用戶代理頭的日志。更多細節請見13.5 章。
--enable-referer-log
該選項激活來自客戶請求的HTTP referer 日志。更多細節請見13.4 章。
--disable-wccp
Web cache 協調協議(WCCP)是CISCO 的專有協議,用於阻止或分發HTTP 請求到一個或多個caches。WCCP默認被激活,假如你願意,可以使用該選項來禁止該功能。
--enable-snmp
簡單網絡管理協議(SNMP)是監視網絡設備和服務器的流行方法。該選項導致編譯過程去編譯所有的SNMP相關的代碼,包括一個裁切版本的CMU SNMP庫。
--enable-cachemgr -hostname[=hostname]
cachemgr 是一個CGI程序,你能使用它來管理查詢squid。默認cachemgr的hostname值是空的,但你能使用該選項來指定一個默認值。例如:
% ./configure --enable-cachemgr-hostname=mycache.myorg.net
--enable-arp-acl
squid 在一些操作系統中支持ARP,或者以太地址訪問控制列表。該代碼使用非標准的函數接口,來執行ARP訪問控制列表,所以它默認被禁止。假如你在linux或solaris上使用squid,你可能用的上這個功能。
--enable-htcp
HTCP 是超文本緩存協議--類似於ICP的內部緩存協議。更多細節請見10.8 章。
--enable-ssl
使用該選項賦予squid 終止SSL/TLS 連接的能力。注意這僅僅工作在web加速器中用以加速請求。更多細節請見15.2.2 章節。
--with-openssl[=DIR]
假如必要,你使用該選項來告訴squid到哪裡找到OpenSSL庫或頭文件。假如它們不在默認位置,在該選項後指定它們的父路徑。例如:
% ./configure --enable-ssl --with-ssl=/opt/foo/openssl
在這個例子中,你的編譯器將在/opt/foo/openssl/include目錄中找頭文件, 在/opt/foo/openssl/lib 中找庫文件。
--enable-cache-digests
Cache 消化是ICP 的另一個替代,但有著截然不同的特性。請見10.7 章。
--enable-err-languages="lang1 lang2 ..."
squid 支持定制錯誤消息,錯誤消息可以用多種語言報告。該選項指定復制到安裝目錄($prefix/share/errors)的語言。假如你不使用該選項,所有可用語言被安裝。想知道何種語言可用,請見源代碼包裡errors目錄下的目錄列表。如下顯示如何激活多種語言:
% ./configure --enable-err-languages="Dutch German French" ...
--enable-default-err-language=lang
該選項設置error_Directory 指令的默認值。例如,假如你想使用荷蘭語,你能這樣指定:
% ./configure --enable-default-err-language=Dutch
你也能在squid.conf 裡指定error_directory 指令,在附錄A 中有描述。假如你忽略該選項,英語是默認錯誤語言。
--with-coss-membuf-size=N
循環目錄存儲系統(coss)是squid 的試驗性存儲機制。該選項設置coss 緩存目錄的內存緩沖大小。注意為了使用coss,你必須在--enable-storeio 選項裡指定存儲類型。
該參數以字節形式賦值,默認是1048576 字節或1M。你能指定2M 緩沖如下:
% ./configure --with-coss-membuf-size=2097152
--enable-poll
unix 提供兩個相似的函數用以在I/O 事件裡掃描開放文件描述符:select() 和poll()。./configure 腳本通常能非常好的計算出何時使用poll()來代替select().假如你想強制使用poll(),那麼指定該選項。
--desable-poll
類似的,如果不使用poll(),那麼指定該選項。
--disable-http-violations
squid 默認可以被配置成違背HTTP協議規范。你能使用該選項來刪除違背HTTP協議的代碼。
--enable-ipf-transparent
在第9章中,我將描述如何配置squid來攔截緩存。一些操作系統使用IP Filter包來協助攔截緩存。在這些環境下你應該使用該./configure 選項。如果你使用了該選項,但是編譯器提示src/client_side.c文件出錯,那是因為IP Filter包沒有或沒有正確的安裝在你的系統中。
--enable-pf-transparent
你可能需要指定該選項,使用PF包過濾器在操作系統中攔截HTTP。PF是OpenBSD的標准包過濾器,也可能被發布到其他系統中。假如你使用該選項,但是編譯器提示src/client_side.c 文件出錯,那是因為PF 沒有實際安裝到你的系統中。
--enable-linux-netfilter
Netfilter 是linux 2.4 系列內核的包過濾器名字。假如你想在linux2.4或以後的版本中使用HTTP攔截功能,那麼激活該選項。
--disable-ident-lookups
ident是一個簡單的協議,允許服務器利用客戶端的特殊TCP連接來發現用戶名。假如你使用該選項,編譯器將把執行這些查詢的代碼排除出去。即使你在編譯時保留了這些代碼,除非你在squid.conf文件裡指定,squid不會執行ident查詢。
--disable-internal-dns
squid 源代碼包含兩個不同的DNS 解決方案,叫做“內部的”和“外部的”。內部查詢是默認的,但某些人可能要使用外部技術。該選項禁止內部功能,轉向使用舊的方式。
內部查詢使用squid自己的DNS協議執行工具。也就是說,squid產生未完成的DNS查詢並且將它們發送到一個解析器。假如超時,它重新發送請求,你能指定任意數量的解析器。該工具的有利處之一是,squid獲得准確無誤的DNS響應的TTLs。
外部查詢利用C庫的gethostbyname()和gethostbyaddr()函數。squid使用一個外部進程池來制造並行查詢。使用外部DNS 解析的主要弊端是你需要更多的輔助進程,增加squid的負載。另一個麻煩是C 庫函數不在響應裡傳輸TTLs,這樣squid使用postive_dns_ttl 指令提供的一個常量值。
--enable-truncate
truncate ()系統調用是unlink()的替代品。unlink()完全刪除cache 文件,truncate()將文件大小設為零。這樣做釋放了分配給該文件的磁盤空間,但留下適當的目錄接口。該選項存在的理由是,某些人相信(或希望) truncate()比unlink()性能表現更好。然而,壓力測試顯示兩者有很少的或根本沒有區別。
--disable-hostname-checks
默認的,squid要求URL主機名在一定程度上遵守古老的RFC 1034 規范:
標簽必須遵循下列ARPANET 主機名規則。它們必須以字母開始,以字母或數字結尾,僅僅包含字母,數字和下劃線。
這裡字母意味著ASCII字符,從A到Z。既然國際域名日益流行,你可能希望使用該選項來移除限制。
--enable-underscores
該選項控制squid針對主機名裡下劃線的行為。通用的標准是主機名裡不包含下劃線字符,盡管有些人不贊成這點。squid默認會對URL主機名裡帶下劃線的請求產生一條錯誤消息。你能使用該選項,讓squid信任它們,把它們當作合法的。然而,你的DNS解析器也許強迫使用非下劃線請求,並且對帶下劃線的主機名解析失敗。
--enable-auth[=LIST]
該選項控制在squid的二進制文件裡支持哪種驗證機制。你能選擇下列機制的任意組合:
basic,digest,ntlm。假如你忽略該選項,squid 僅僅支持basic 驗證。假如你使用不帶參數的--enable-auth選項,編譯進程將增加對所有驗證機制的支持。你可以使用以逗號分隔的驗證機制列表:
% ./configure --enable-auth=digest,ntlm
我在第六章和第十二章裡會談得更多。
--enable-auth-helpers=LIST
這個舊選項現在已捨棄了, 但為了保持向後兼容性仍保留著。你可以使用--enable-basic-auth-helperes=LIST 來代替。
--enable-basic-auth-helpers=LIST
使用該選項,你能將helpers/basic_auth 目錄的一個或多個HTTP Basic驗證輔助程序編譯進來。請見12.2章找到它們的名字和描述。
--enable-ntlm-auth-helpers=LIST
使用該選項,你能將helpers/ntlm_auth 目錄的一個或多個HTTP NTLM驗證輔助程序編譯進來。請見12.4章找到它們的名字和描述。
--enable-digest-auth-modules=LIST
使用該選項,你能將helpers/digest_auth 目錄的一個或多個HTTP Digest驗證輔助程序編譯進來。請見12.3章找到它們的名字和描述。
--enable-external-acl-helpers=LIST
使用該選項,你能編譯一個或多個擴展ACL輔助程序,這些在12.5章中討論。例如:
% ./configure --enable-external-acl-helpers=ip_user,ldap_group
--disable-unlinkd
unlinkd 是另一個squid的外部輔助進程。它的基本工作是對cache文件執行unlink()或truncate()系統調用。通過在外部進程裡執行文件刪除工作,能給squid帶來明顯的性能提升。使用該選項來禁止外部unlink進程功能。
--enable-stacktrace
某些系統支持在程序崩潰時,自動產生數據追蹤。當你激活該功能後,如果squid崩潰,數據追蹤信息被寫到cache.log文件。這些信息對開發和程序bug調試有用。
--enable-x-accelerator-vary
該高級功能可能在squid被配置成加速器時使用。它建議squid在響應請求時,從後台原始服務器中尋找X-Accelerator-Vary頭。
在安裝完後,你將在squid 的安裝目錄裡(默認是/usr/local/squid)見到下列目錄和文件:
sbin
sbin 目錄的程序正常只能被root 啟動
sbin/squid
Squid 的主程序
bin
bin 目錄包含對所有用戶可用的程序
bin/RunCache
RunCache 是一個shell腳本,你能用它來啟動squid。假如squid死掉,該腳本自動重啟它,除非它檢測到經常的重啟。RunCache是一個時間遺留的產物,那時Squid還不是後台服務進程。在最近的版本裡,RunCache很少用到,因為Squid自動重啟它自身,當你不使用-N選項時。
bin/RunAccel
RunAccel 與RunCache 幾乎一致,唯一的不同是它增加了一個命令行參數,告訴squid在哪裡偵聽HTTP 請求。
bin/squidclient
squidclient 是個簡單的HTTP 客戶端程序,你能用它來測試squid。它也有一些特殊功能,用以對運行的squid 進程發起管理請求。
libexec
libexec 目錄傳統的包含了輔助程序。有一些命令你不能正常的啟動。然而,這些程序通常被其他程序啟動。
libexec/unlinkd
unlinkd是一個輔助程序,它從cache目錄裡刪除文件。如你後面看到的一樣,文件刪除是個性能瓶頸。通過在外部進程裡執行刪除操作,Squid提升了一些執行性能。
libexec/cachemgr.cgi
cachemgr.cgi是Squid管理功能的CGI接口。為了使用它,你需要拷貝該程序到你的WEB服務器的cgi-bin目錄。在14.2章中有更多描述。
libexec/diskd(optional)
假如你指定了--enable-storeio=diskd,你才能看到它。
libexec/pinger(optional)
假如你指定了--enable-icmp,你才能看到它。
etc
etc 目錄包含squid 的配置文件。
etc/squid.conf
這是squid的主要配置文件。初始的該文件包含了大量的注釋,用以解釋每一個選項做什麼。在你理解了這些配置指令後,建議你刪除這些注釋,讓配置文件更小和更容易閱讀。注意假如該文件存在,安裝過程不會覆蓋該文件。
etc/squid.conf.default
這是從源代碼目錄中拷貝過來的默認配置文件。在升級了squid安裝後,你也許發現有一份當前默認配置文件的拷貝是有用的。可能會增加新的配置指令,一些存在的舊指令可能有所改變。
etc/mime.conf
mime.conf文件告訴squid 對從FTP和Gopher服務器獲取的數據使用何種MIME類型。該文件是一個關聯文件名擴展到MIME類型的表。正常而言,你不必編輯該文件。然而,你可能需要增加特殊文件類型的接口,它們在你的組織內使用。
etc/mime.conf.default
這是從源代碼目錄裡拷貝過來的默認mime.conf文件。
share
share目錄通常包括squid的只讀數據文件。
share/mib.txt
這是squid的SNMP管理信息基礎(MIB)文件。squid自身不使用該文件,然而,你的SNMP客戶端軟件(例如snmpget和多路由走向圖(MRTG))需要該文件,用以理解來自squid的SNMP對象可用。
share/icons
share/icons目錄包含大量的小圖標文件,squid用在FTP和Gopher目錄列舉裡。正常而言,你不必擔心這些文件,但如果需要,你可以改變它們。
share/errors
share/errors 目錄包含了squid顯示給用戶看的錯誤消息模板。這些文件在你安裝squid時,從源代碼目錄拷貝而來。如果需要你可以編輯它們。然而,在每次運行 make install時,安裝過程總會覆蓋它們。所以假如你想定制錯誤消息,建議你把它們放在不同的目錄。
var
var目錄包含了不是很重要的和經常變化的文件。這些文件你不必正常的備份它們。
var/logs
var/logs目錄是squid 不同日志文件的默認位置。當你第一次安裝squid 時,它是空的。一旦squid開始運行,你能在這裡看到名字為Access.log,cache.log和store.log這樣的文件。
var/cache
假如你不在squid.conf文件裡指定,這是默認的緩存目錄(cache_dir)。
etc/squid.conf.default
這是從源代碼目錄中拷貝過來的默認配置文件。在升級了squid安裝後,你也許發現有一份當前默認配置文件的拷貝是有用的。可能會增加新的配置指令,一些存在的舊指令可能有所改變。
etc/mime.conf
mime.conf文件告訴squid 對從FTP和Gopher服務器獲取的數據使用何種MIME類型。該文件是一個關聯文件名擴展到MIME類型的表。正常而言,你不必編輯該文件。然而,你可能需要增加特殊文件類型的接口,它們在你的組織內使用。
etc/mime.conf.default
這是從源代碼目錄裡拷貝過來的默認mime.conf文件。
share
share目錄通常包括squid的只讀數據文件。
share/mib.txt
這是squid的SNMP管理信息基礎(MIB)文件。squid自身不使用該文件,然而,你的SNMP客戶端軟件(例如snmpget和多路由走向圖(MRTG))需要該文件,用以理解來自squid的SNMP對象可用。
share/icons
share/icons目錄包含大量的小圖標文件,squid用在FTP和Gopher目錄列舉裡。正常而言,你不必擔心這些文件,但如果需要,你可以改變它們。
share/errors
share/errors 目錄包含了squid顯示給用戶看的錯誤消息模板。這些文件在你安裝squid時,從源代碼目錄拷貝而來。如果需要你可以編輯它們。然而,在每次運行 make install時,安裝過程總會覆蓋它們。所以假如你想定制錯誤消息,建議你把它們放在不同的目錄。
var
var目錄包含了不是很重要的和經常變化的文件。這些文件你不必正常的備份它們。
var/logs
var/logs目錄是squid 不同日志文件的默認位置。當你第一次安裝squid 時,它是空的。一旦squid開始運行,你能在這裡看到名字為Access.log,cache.log和store.log這樣的文件。
var/cache
假如你不在squid.conf文件裡指定,這是默認的緩存目錄(cache_dir)。
libexec/diskd(optional)
假如你指定了--enable-storeio=diskd,你才能看到它。
libexec/pinger(optional)
假如你指定了--enable-icmp,你才能看到它。
etc
etc 目錄包含squid 的配置文件。
etc/squid.conf
這是squid的主要配置文件。初始的該文件包含了大量的注釋,用以解釋每一個選項做什麼。在你理解了這些配置指令後,建議你刪除這些注釋,讓配置文件更小和更容易閱讀。注意假如該文件存在,安裝過程不會覆蓋該文件。
etc/squid.conf.default
這是從源代碼目錄中拷貝過來的默認配置文件。在升級了squid安裝後,你也許發現有一份當前默認配置文件的拷貝是有用的。可能會增加新的配置指令,一些存在的舊指令可能有所改變。
etc/mime.conf
mime.conf文件告訴squid 對從FTP和Gopher服務器獲取的數據使用何種MIME類型。該文件是一個關聯文件名擴展到MIME類型的表。正常而言,你不必編輯該文件。然而,你可能需要增加特殊文件類型的接口,它們在你的組織內使用。
etc/mime.conf.default
這是從源代碼目錄裡拷貝過來的默認mime.conf文件。
share
share目錄通常包括squid的只讀數據文件。
share/mib.txt
這是squid的SNMP管理信息基礎(MIB)文件。squid自身不使用該文件,然而,你的SNMP客戶端軟件(例如snmpget和多路由走向圖(MRTG))需要該文件,用以理解來自squid的SNMP對象可用。
share/icons
share/icons目錄包含大量的小圖標文件,squid用在FTP和Gopher目錄列舉裡。正常而言,你不必擔心這些文件,但如果需要,你可以改變它們。
share/errors
share/errors 目錄包含了squid顯示給用戶看的錯誤消息模板。這些文件在你安裝squid時,從源代碼目錄拷貝而來。如果需要你可以編輯它們。然而,在每次運行 make install時,安裝過程總會覆蓋它們。所以假如你想定制錯誤消息,建議你把它們放在不同的目錄。
var
var目錄包含了不是很重要的和經常變化的文件。這些文件你不必正常的備份它們。
var/logs
var/logs目錄是squid 不同日志文件的默認位置。當你第一次安裝squid 時,它是空的。一旦squid開始運行,你能在這裡看到名字為Access.log,cache.log和store.log這樣的文件。
var/cache
假如你不在squid.conf文件裡指定,這是默認的緩存目錄(cache_dir)。