AR2831與Squid對接實現web cache功能
AR2831與Squid對接實現webcache功能
一、版本資訊
AR2831的版本為:Version3.40,Release0311P26
二、組網結構
AR2831與Squid伺服器的介面地址為192.168.1.1/29。
Squid伺服器IP地址為192.168.1.4/29、192.168.1.5/29,通過bond雙網絡卡繫結。
使用者端地址段為192.168.0.0/27(使用者群體1)、192.168.0.32/27(使用者群體2)、192.168.0.64/27(L2tp撥號使用者)。
三、安裝配置Squid伺服器
Squid伺服器作業系統為Centos6.4,squid版本為Version3.1.10。
1、啟動路由
#vim/etc/sysctl.conf
將net.ipv4.ip_forward=0改為net.ipv4.ip_forward=1
#預設值0是禁止ip轉發,修改為1即開啟ip轉發功能。
2、新增iptables的訪問規則-NAT
#Vim/etc/sysconfig/iptables
在iptables檔案中新增規則:
-APREROUTING-ibond0-ptcp-mtcp--dport80-jREDIRECT--to-ports80
#在NAT表的PREROUTING鏈加目標動作REDIRECT,將入站的資料包進行重定向,將80號埠重定向成80,bond0為雙網絡卡bond繫結。
-AINPUT-ptcp-mtcp--dport80-jACCEPT
#在防火牆中開啟TCP80埠
COMMIT
3、安裝Squid
#yuminstallsquid*-y
4、配置Squid
#vim/etc/squid/squid.conf
以下為我的Squid配置:
http_port80transparent#squid監聽埠為80,透明模式。
dns_nameservers192.168.1.4#指定內部DNS伺服器,可以不配置。
dns_nameservers192.168.1.5#指定內部DNS伺服器,可以不配置。
aclmanagerprotocache_object
acllocalhostsrc127.0.0.1/32
aclto_localhostdst127.0.0.0/8
aclour_network***c192.168.0.0/27
aclour_network***c192.168.1.0/29#設定允許訪問的網路地址段。
aclour_network***c192.168.0.32/27#設定允許訪問的網路地址段。
aclour_network***c192.168.0.64/27#設定允許訪問的網路地址段。
http_accessallowmanagerlocalhost
http_accessdenymanager
http_accessdenyto_localhost
http_accessallowour_networks#設定允許訪問的網路地址段。
forwarded_foron#關閉此項將在訪問某些論壇時顯示的IP是代理伺服器的IP,如果開啟則顯示是客戶請求IP。
coredump_dir/var/spool/squid#squid突然掛掉的時候,或者突然出現什麼故障的時候,將squid在記憶體中的資料寫到硬碟中。
cache_dirufs/var/spool/squid4096016256#指定cache在硬碟上存放的路徑,最大儲存40G,16個一級目錄,256個二級目錄,如果不快取任何檔案可以指定。
logformatdenniswave[%{%Y/%m/%d%H:%M:%S}tl]%>a%Ss:%Sh"%rm%ruHTTP/%rv"%>Hs%<st"%{Referer}>h""%{User-Agent}>h"%ui%un#日誌格式
cache_log/var/log/squid/cache.log#squid啟動和除錯等資訊
cache_store_log/var/log/squid/store.log#squid快取日誌
access_log/var/log/squid/access.logdenniswave#squid請求日誌
httpd_suppress_version_stringon#取消squid的出錯頁面總會在網頁的最下方顯示出主機相關資訊和squid的版本資訊
error_directory/usr/share/squid/errors/zh-cn#設定squid錯誤頁面為中文
cache_effective_usersquid#squid對應系統管理使用者
cache_effective_groupsquid#squid對應系統管理組
logfile_rotate4#日誌輪訓,保留最近得4份日誌
cache_mem256MB#squid使用共享記憶體大小,一般設定為記憶體1/3左右
cache_swap_low85#配合cache_mem使用,當達到百分之85後,就把舊的內容替換直到降到百分之85
cache_swap_high95
maximum_object_size32768KB#單個檔案最大快取大小
maximum_object_size_in_memory512KB#單個檔案在記憶體中最大快取大小
[email protected]#管理員聯絡方式
visible_hostnamecache.xxxxxx.com#可見主機名
aclQUERYurlpath_regexcgi-bin.php.cgi.avi.wmv.rm.ram.mpg.mpeg.zip.exe.aspx.asp#不快取動態的內容
cachedenyQUERY
##############Refresh_pattern################
#refresh防止客戶端一直重新整理照成cache回源確認,對此設定了快取時間。間接的控制磁碟快取,寬鬆的設定增加了cache的命中率,同樣也增加了使用者接受過時相應的機率;保守的設定,降低了cache的命中率和過時響應。
#reload-into-ims:該選項讓squid在確認請求裡,以no-cache指令傳送一個請求。也就是說squid在轉發請求之前,對該請求增加一個If-Modified-Since頭部。注意這點僅僅在目標有Last-Modified時間戳時才能工作。
refresh_pattern-i.html144050%10080reload-into-ims
refresh_pattern-i.htm144050%10080reload-into-ims
refresh_pattern-i.shtml144050%10080reload-into-ims
refresh_pattern-i.png432050%20160reload-into-ims
refresh_pattern-i.gif432050%20160reload-into-ims
refresh_pattern-i.bmp432050%20160reload-into-ims
refresh_pattern-i.jpg432050%20160reload-into-ims
refresh_pattern-i.js432050%20160reload-into-ims
refresh_pattern-i.css432050%20160reload-into-ims
refresh_pattern-i.swf432050%20160reload-into-ims
5、啟用squid
1)、在開啟squid之前,你應該驗證其配置檔案是否正確。執行如下命令即可:
#squid-kparse
假如你看不到輸出,配置檔案有效,你能繼續後面的步驟。然而,如果配置檔案包含錯誤,squid會告訴你。
2)、初始化cache目錄.即建立快取目錄的儲存格式
只需在第一次啟動squid服務之前執行(在初次執行squid之前,或者無論何時你增加了新的cache_dir,你必須初始化cache目錄。)
#squid-z
cache目錄初始化可能花費一些時間,依賴於cache目錄的大小和數量,以及磁碟驅動器的速度。假如你想觀察這個過程,請使用-X選項:
#squid-zX
3)、將squid加入系統啟動項
#chkconfig--level35squidon
4)、啟動squid
#servicesquidstart
四、配置AR2831的webcache功能
<ar2831>system-view
[ar2831]webcacheredirectaddress192.168.1.5port80
#192.168.1.5為Squid伺服器的IP地址,port80為Squid伺服器的服務埠。
[ar2831]interfaceGigabitEthernet1/0
#interfaceGigabitEthernet1/0為接使用者側的埠。
[ar2831-GigabitEthernet1/0]webcacheredirectenable
#Webcache重定向功能開啟。
五、檢視狀態資訊、抓包
1、取得squid執行狀態資訊
#squidclient-h127.0.0.1-p80mgr:info
HTTP/1.0200OK
Server:squid
Mime-Version:1.0
Date:Mon,21Oct201304:02:00GMT
Content-Type:text/plain
Expires:Mon,21Oct201304:02:00GMT
Last-Modified:Mon,21Oct201304:02:00GMT
X-Cache:MISSfromcache.xtmcc.tk
X-Cache-Lookup:MISSfromcache.xtmcc.tk:80
Via:1.0cache.xtmcc.tk(squid)
Connection:close
SquidObjectCache:Version3.1.10
StartTime:Mon,21Oct201303:43:34GMT
CurrentTime:Mon,21Oct201304:02:00GMT
Connectioninformationforsquid:
Numberofclientsaccessingcache:2
NumberofHTTPrequestsreceived:228
NumberofICPmessagesreceived:0
NumberofICPmessagessent:0
NumberofqueuedICPreplies:0
NumberofHTCPmessagesreceived:0
NumberofHTCPmessagessent:0
Requestfailureratio:0.00
AverageHTTPrequestsperminutesincestart:12.4
AverageICPmessagesperminutesincestart:0.0
Selectloopcalled:42738times,25.875msavg
Cacheinformationforsquid:
Hitsas%ofallrequests:5min:0.0%,60min:24.4%
Hitsas%ofbytessent:5min:13.4%,60min:60.4%
Memoryhitsas%ofhitrequests:5min:0.0%,60min:0.0%
Diskhitsas%ofhitrequests:5min:0.0%,60min:100.0%
StorageSwapsize:693284KB
StorageSwapcapacity:1.7%used,98.3%free
StorageMemsize:1092KB
StorageMemcapacity:0.4%used,99.6%free
MeanObjectSize:23.59KB
Requestsgiventounlinkd:6
MedianServiceTimes(seconds)5min60min:
HTTPRequests(All):0.097360.04519
CacheMisses:0.087290.09736
CacheHits:0.000000.00000
NearHits:0.000000.00000
Not-ModifiedReplies:0.000000.00000
DNSLookups:0.087170.04854
ICPQueries:0.000000.00000
Resourceusageforsquid:
UPTime:1105.859seconds
CPUTime:1.030seconds
CPUUsage:0.09%
CPUUsage,5minuteavg:0.04%
CPUUsage,60minuteavg:0.09%
ProcessDataSegmentSizeviasbrk():7352KB
MaximumResidentSize:59440KB
Pagefaultswithphysicali/o:0
Memoryusageforsquidviamallinfo():
Totalspaceinarena:7484KB
Ordinaryblocks:7436KB26blks
Smallblocks:0KB0blks
Holdingblocks:2040KB5blks
FreeSmallblocks:0KB
FreeOrdinaryblocks:47KB
Totalinuse:9476KB100%
Totalfree:47KB0%
Totalsize:9524KB
Memoryaccountedfor:
Totalaccounted:4273KB45%
memPoolaccounted:4273KB45%
memPoolunaccounted:5250KB55%
memPoolAlloccalls:115283
memPoolFreecalls:115585
Filedescriptorusageforsquid:
Maximumnumberoffiledescriptors:1024
Largestfiledesccurrentlyinuse:19
Numberoffiledesccurrentlyinuse:14
Filesqueuedforopen:0
Availablenumberoffiledescriptors:1010
Reservednumberoffiledescriptors:100
StoreDiskfilesopen:0
InternalDataStructures:
29416StoreEntries
162StoreEntrieswithMemObjects
160HotObjectCacheItems
29388on-diskobjects
*取得squid記憶體使用情況:squidclient-h127.0.0.1–p80mgr:mem
*取得squid已經快取的列表:squidclient-h127.0.0.1-p80mgr:objects
*取得squid的磁碟使用情況:squidclient-h127.0.0.1-p80mgr:diskd
2、抓包
#tcpdump-n-ibond0port80
*bond0為所要抓包的網絡卡
3、服務的啟動、停止、重啟動
#servicesquidstart
*啟動squid服務
#servicesquidstop
*停止squid服務
#servicesquidrestart
*重啟動squid服務
轉載於:https://blog.51cto.com/40389/1312660