Varnish
一.準備環境
三臺6.5企業版虛擬機
同網段IP
防火牆與selinux關閉(永久關閉防火牆,注意6.5與7的對於服務操作啓動的區別)
再有一臺真機可以做測試
主機環境:172.25.47.250
實驗主機:
172.25.47.1 varnish
172.25.47.2 apache
172.25.47.3 apache
二.Varnish 原理
處理過程大致分爲如下幾個步驟:
(1)Receive 狀態,也就是請求處理的入口狀態,根據 VCL 規則判斷該請求應該是 Pass 或
Pipe,或者進入 Lookup(本地查詢)。
(2)Lookup 狀態,進入此狀態後,會在 hash 表中查找數據,若找到,則進入 Hit 狀態,否則進
入 miss 狀態。
(3)Pass 狀態,在此狀態下,會進入後端請求,即進入 fetch 狀態。
(4)Fetch 狀態,在 Fetch 狀態下,對請求進行後端的獲取,發送請求,獲得數據,並進行本地
的存儲。
(5)Deliver 狀態, 將獲取到的數據發送給客戶端,然後完成本次請求。
三.Varnish 操作
1.安裝
Yum 倉庫的配置以及鏡像的掛載
http://repo.varnish-cache.org/redhat/varnish-3.0/el6/x86_64/
yum localinstall -y varnish-3.0.3-1.el6.x86_64.rpm varnish-libs-3.0.3-1.el6.x86_64.rpm
2.配置文件
針對varnish:
Vim /etc/varnish/default.vcl
#####配置一個後端服務器
#####配置varnish服務端口
vim /etc/sysconfig/varnish
打開該服務,查看端口狀態
/etc/init.d/varnish start
netstat -antlp
#####向配置文件中添加判斷緩存命中的情況
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}
#####重新加載該服務
/etc/init.d/varnish reload
針對172.25.47.2:
安裝apache服務,並打開服務
在默認發佈目錄中寫個文件
針對測試機 172.25.47.250:
#####測試緩存命中
#####未命中
######命中