1. 程式人生 > 實用技巧 >AR2831與Squid對接實現web cache功能

AR2831與Squid對接實現web cache功能

AR2831與Squid對接實現webcache功能

一、版本資訊

AR2831的版本為:Version3.40,Release0311P26

142511323.jpg

二、組網結構

142533612.jpg

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