Varnish 3安裝部署及使用

2021-06-16 14:01:09 字數 2214 閱讀 2300

varnish安裝

varnish配置與管理

varnish高階使用

處理http響應的子程式:

建議在寫自己的vcl**之前,先閱讀varnish缺省內嵌的vcl配置檔案default.vcl:

# cat /usr/local/varnish/etc/varnish/default.vcl
varnish負載均衡

varnish負載均衡的director有random,client,hash,round-robin,dns,fallback等.

下面是兩種最常用的director的負載均衡.

director使用round-robin的vcl:

...

director dr1 round-robin

}sub vcl_recv

}...

director使用client的vcl:

...http快取頭部

http1.1引入了cache-control響應頭部來替換http 1.0的expires頭部.兩者的主要區別在於expires是使用乙個日期時間值,而cache-control可以接收乙個age值.

expires: fri, 1 oct 2012 14:19:41 gmt

cache-control: max-age=3600

乙個使用php處理http快取(快取10秒)的例子:

<?php 

header('cache-control: public, must-revalidate, max-age=10, s-maxage=10');

header('last-modified: ' . gmdate("d, d m y h:i:s") . ' gmt');

header('expires: ' . gmdate ('d, d m y h:i:s', time() + 10). ' gmt');

echo "content from php";

?>

varnish會遵守這些快取頭部(cache headers)的值,除非varnish被告知不需要遵守.因此,當內容應該被快取而實際沒快取的時候,可檢查響應頭部(response headers)是否有no-store/no-cache或是乙個已經過期的時間值.

清除varnish快取內容

清除varnish快取內容有三種方式:

注意:purge方式會馬上將內容從快取中刪除,並釋放記憶體.ban方式不會馬上刪除內容,也不釋放記憶體,而是建立乙個ban列表,每次請求進來的時候都會檢查這個列表.

purge只能在vcl**中實現,參考上面的fdfs.vcl.

下面是使用purge方式清理快取的乙個php指令碼:

<?php

function purge($ip, $url) else

fclose($fp);

}}purge('127.0.0.1', '/m00/00/00/wkgbv1fsxxgadrieaao1xlfk2tw732.jpg');

ban方式既可以在vcl**vcl_recv子程式中實現,也可以通過cli方式的varnishadm管理客戶端來操作.

下面是通過varnishadm使用ban方式清除快取的幾個例子:

清除單個檔案c.php的快取:

清除/m00目錄下所有檔案的快取:

# varnishadm ban.url "^/m00"
清除所有快取:

# varnishadm ban.url "^/.*$"
檢視所有的ban列表:

# varnishadm ban.list
http壓縮

文字型別的響應內容可以進行壓縮,比如(html,css,js,xml).

在物件進入快取之前進行壓縮再儲存:

sub vcl_fetch 

...}

參考資料

varnish 3官方文件

varnish book

Linux企業實戰(六) varnish(3)

varnish啟動會產生兩個程序,manager主 管理managerment 程序,然後fork乙個worker子程序 ps ef 檢視系統的程序vcl recv是http請求到達後進入的第乙個狀態,在這個狀態中,可以對請求進行以下的一些處理 1 修改client請求,以減少快取決策時的差異性 2...

Varnish安裝部署文件

系統環境 centos release 5.5 final 64 bit 所需軟體 varnish 2.1.4.tar.gz varnish官方 cache.org 安裝前準備 建立www使用者和組,以及varnish快取檔案存放目錄 elain data vcache usr sbin group...

Varnish的安裝及使用教程

1.在server1上安裝varnish 2.在server2上安裝httpd服務並啟動,在預設發布目錄寫上 server two 3.在server1上vim etc sysconfig varnish,修改varnish的監聽埠 執行vim etc varnish default.vcl,對配置...