標籤:http ext com get 使用 strong
Squid是一個緩衝Internet資料的軟體,其接收使用者的下載申請,並自動處理所下載的資料。當一個使用者想要下載一個首頁時,可以向 Squid發出一個申請,要Squid代替其進行下載,然後Squid串連所申請網站並請求該首頁,接著把該首頁傳給使用者同時保留一個備份,當別的使用者申 請同樣的頁面時,Squid把儲存的備份立即傳給使用者,使使用者覺得速度相當快。Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS等協 議並且,Squid可以自動地進行處理,可以根據自己的需要設定Squid,使之過濾掉不想要的東西。
Squid可以工作在很多的作業系統中,如AIX、Digital、UNIX、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。
在使用過程中,合理使用存取控制是非常重要的工作。使用存取控制特性,可以控制其在訪問時根據特定的時間間隔進行緩衝、訪問特定網站或一組網站等 等。Squid存取控制有兩個要素:ACL元素和訪問列表。訪問列表可以允許或拒絕某些使用者對此服務的訪問。下面分別介紹ACL元素以及訪問列表的使用方 法。
1.ACL元素
該元素定義的文法如下:
acl aclname acltype string1…
acl aclname acltype "file"…
當使用檔案時,該檔案的格式為每行包含一個條目。
其中,acltype可以是src、dst、srcdomain、dstdomain、url_regex、urlpath_regex、time、port、proto、method中的一任意一種。
src:指明源地址。可以用以下的方法指定:
acl aclname src ip-address/netmask ... 客戶ip地址acl aclname src addr1-addr2/netmask ... 位址範圍
dst:指明目標地址,即客戶請求的伺服器的IP地址。文法為:
acl aclname dst ip-address/netmask ...
srcdomain:指明客戶所屬的域,Squid將根據客戶IP反向查詢DNS。文法為:
acl aclname srcdomain foo.com ...
dstdomain:指明請求伺服器所屬的域,由客戶請求的URL決定。文法為:
acl aclname dstdomain foo.com ...。此處需要注意的是:如果使用者使用伺服器IP而非完整的網域名稱時,Squid將進行反向的DNS解析來確定其完整網域名稱,如果失敗,就記錄為“none”。
time:指明訪問時間。文法如下:
acl aclname time [day-abbrevs] [h1:m1-h2:m2][hh:mm-hh:mm]
日期的縮寫指代關係如下:
- S:指代Sunday
- M:指代Monday
- T:指代Tuesday
- W:指代Wednesday
- H:指代Thursday
- F:指代Friday
- A:指代Saturday
另外,h1:m1必須小於h2:m2,運算式為[hh:mm-hh:mm]。
port:指定訪問連接埠。可以指定多個連接埠,比如:
acl aclname port 80 70 21 ...acl aclname port 0-1024 ... 指定一個連接埠範圍
proto:指定使用協議。可以指定多個協議:
acl aclname proto HTTP FTP ...
method:指定要求方法。比如:
acl aclname method GET POST ...
url_regex:URL規則運算式匹配,文法為:
acl aclname url_regex[-i] pattern
urlpath_regex:URL-path規則運算式匹配,略去協議和主機名稱。其文法為:
acl aclname urlpath_regex[-i] pattern
在使用上述ACL元素的過程中,要注意如下幾點:
- acltype可以是任一個在ACL中定義的名稱。
- 任何兩個ACL元素不能用相同的名字。
- 每個ACL由列表值組成。當進行匹配檢測的時候,多個值由邏輯或運算串連;換句話說,任一ACL元素的值被匹配,則這個ACL元素即被匹配。
- 並不是所有的ACL元素都能使用訪問列表中的全部類型。
- 不同的ACL元素寫在不同行中,Squid將這些元素組合在一個列表中。