Varnish

Varnish

一.準備環境

三臺6.5企業版虛擬機

同網段IP

防火牆與selinux關閉(永久關閉防火牆,注意6.5與7的對於服務操作啓動的區別)

wps4B6D.tmp

再有一臺真機可以做測試

主機環境:172.25.47.250

wps4B6E.tmp

實驗主機:

172.25.47.1   varnish

wps4B6F.tmp

172.25.47.2   apache

wps4B70.tmp

172.25.47.3  apache

wps4B71.tmp

二.Varnish 原理

wps4B72.tmp

wps4B73.tmp

處理過程大致分爲如下幾個步驟:

(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

#####配置一個後端服務器

wps4B74.tmp

#####配置varnish服務端口

vim /etc/sysconfig/varnish

wps4B75.tmp

打開該服務,查看端口狀態

/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);

}

wps4B76.tmp

#####重新加載該服務

/etc/init.d/varnish reload

針對172.25.47.2:

安裝apache服務,並打開服務

在默認發佈目錄中寫個文件

wps4B77.tmp

針對測試機 172.25.47.250:

#####測試緩存命中

wps4B87.tmp

#####未命中

wps4B88.tmp

######命中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章