新聞中心
Varnish 是一款高性能且開源的反向代理服務(wù)器和 HTTP 加速器,其采用全新的軟件體系機(jī)構(gòu),和現(xiàn)在的硬件體系緊密配合,與傳統(tǒng)的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等諸多優(yōu)點(diǎn)。

創(chuàng)新互聯(lián)公司主營(yíng)大祥網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā),大祥h5小程序制作搭建,大祥網(wǎng)站營(yíng)銷推廣歡迎大祥等地區(qū)企業(yè)咨詢
安裝
安裝pcre
如果沒有安裝pcre,在編譯varnish 2.0以上版本時(shí),會(huì)提示找不到pcre庫,而pcre庫是為了兼容正則表達(dá)式,所以必須先安裝pcre庫。下面是pcre的安裝過程:
[root@varnish-server ~]# tar -zxvf pcre-7.9.tar.gz
[root@varnish-server ~]# cd pcre-7.9/
[root@varnish-server ~]# ./config --prefix=/usr/local/pcre/
[root@varnish-server ~]# make && make install
安裝Varnish
這里將Varnish安裝到/usr/local/目錄下,操作如下:
[root@varnish-server ~]# tar -zxvf varnish-2.1.2.tar.gz
[root@varnish-server ~]# cd varnish-2.1.2
[root@varnish-server ~]# export PKG_CONFIG_PATH=/usr/local/pcre/lib/pkgconfig
[root@varnish-server ~]# ./configuer --prefix=/usr/local/varnish \
>--enable-dependency-tracking
>--enable-debugging-symbols
>--enable-developer-warnings
[root@varnish-server ~]# make
[root@varnish-server ~]# make install
[root@varnish-server ~]# cp redhat/varnish.initrc /etc/init.d/varnish
[root@varnish-server ~]# cp redhat/varnish.sysconfig /etc/syscinfug/varnish
其中,“PKG_CONFIG_PATH”是指定Varnish查找pcre庫的路徑,至此,Varnish安裝完畢。
配置
由于篇幅限制,在這兒是介紹VCL內(nèi)置函數(shù)的意義,請(qǐng)大家見諒!
vcl_recv函數(shù)
用于接受和處理請(qǐng)求。當(dāng)請(qǐng)求達(dá)到并被成功接收后被調(diào)用,通過判斷請(qǐng)求的數(shù)據(jù)來決定如何處理請(qǐng)求。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>pass:表示進(jìn)入pass模式,把請(qǐng)求控制權(quán)交給vcl_pass函數(shù)。
>pipe:表示進(jìn)入pipe模式,請(qǐng)把請(qǐng)求控制權(quán)交給vcl_pipe函數(shù)。
>error code [reason]:表示返回“code”給客戶端,并放棄處理該請(qǐng)求。
vcl_pipe函數(shù)
此函數(shù)在進(jìn)入pipe模式時(shí)被調(diào)用,用于將請(qǐng)求直接傳遞至后端主機(jī),在請(qǐng)求和返回的內(nèi)容沒有改變的情況下,將不變的內(nèi)容返回給客戶端,直到這個(gè)連接被關(guān)閉。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>pipe:表示進(jìn)入pipe模式,請(qǐng)把請(qǐng)求控制權(quán)交給vcl_pipe函數(shù)。
>error code [reason]:表示返回“code”給客戶端,并放棄處理該請(qǐng)求。
vcl_pass函數(shù)
此函數(shù)在進(jìn)入pass模式時(shí)被調(diào)用,用于將請(qǐng)求直接傳遞至后端主機(jī)。后端主機(jī)在應(yīng)答數(shù)據(jù)后將應(yīng)答數(shù)據(jù)發(fā)送給客戶端,但不進(jìn)行任何緩存,在當(dāng)前連接下每次都返回最新的內(nèi)容。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>pass。
>error code [reason]:表示返回“code”給客戶端,并放棄處理該請(qǐng)求。
lookup
表示在緩存中查找被請(qǐng)求的對(duì)象,并且根據(jù)查找的結(jié)果把控制權(quán)交給vcl_hit或者函數(shù)vcl_miss。
vcl_hit函數(shù)
在執(zhí)行l(wèi)ookup指令后,在緩存中找到請(qǐng)求的內(nèi)容后將自動(dòng)調(diào)用該函數(shù)。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>pass:表示進(jìn)入pass模式,把請(qǐng)求控制權(quán)交給vcl_pass函數(shù)。
>deliver:表示將找到的內(nèi)容發(fā)送給客戶端,并把控制權(quán)交給vcl_deliver。
>error code [reason]:表示返回“code”給客戶端,并放棄處理該請(qǐng)求。
vcl_miss函數(shù)
在執(zhí)行l(wèi)ookup指令后,在緩存中沒有找到請(qǐng)求的內(nèi)容時(shí)自動(dòng)調(diào)用該方法。此函數(shù)可用于判斷是否需要從后端服務(wù)器獲取內(nèi)容。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>pass。
>fetch:表示從后端獲取請(qǐng)求的內(nèi)容,并且把控制權(quán)交給vcl_fetch。
>error code [reason]:表示返回“code”給客戶端,并放棄處理該請(qǐng)求。
vcl_fetch函數(shù)
在后端主機(jī)更新緩存并且獲取內(nèi)容后調(diào)用該方法,接著,通過判斷獲取的內(nèi)容來決定是將內(nèi)容放入緩存,還是直接返回給客戶端。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>pass。
>deliver:表示將找到的內(nèi)容發(fā)送給客戶端,并把控制權(quán)交給vcl_deliver。
>error code [reason]:表示返回“code”給客戶端,并放棄處理該請(qǐng)求。
vcl_deliver函數(shù)
將在緩存中找到請(qǐng)求的內(nèi)容發(fā)送給客戶端前調(diào)用該方法。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>deliver:表示將找到的內(nèi)容發(fā)送給客戶端,并把控制權(quán)交給vcl_deliver。
>error code [reason]:表示返回“code”給客戶端,并放棄處理該請(qǐng)求。
vcl_timeout函數(shù)
在緩存內(nèi)容到期前調(diào)用該函數(shù)。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>descard:表示從緩存中清楚該內(nèi)容。
>fetch
vcl_discard函數(shù)
在緩存內(nèi)容到期后或緩存空間不足時(shí),自動(dòng)調(diào)用該函數(shù)。 此函數(shù)一般以如下幾個(gè)關(guān)鍵字結(jié)束:
>descard
>keep:表示將內(nèi)容繼續(xù)保留在緩存中。
網(wǎng)站名稱:Linux下安裝HTTP加速器Varnish
分享網(wǎng)址:http://www.dlmjj.cn/article/dpjoepg.html


咨詢
建站咨詢
