高效能快取伺服器Varnish

2022-07-09 21:24:07 字數 2221 閱讀 4540

varnish是一款高效能的、開源的反向**伺服器和快取伺服器,計算機系統的除了有記憶體外,還有cpu的l1、l2,甚至l3級別的快取,varnish的設計架構就是利用作業系統的快取機制處理訪問;vcl,即varnish configuration language,是varnish的配置語言。在執行vcl時,varnish把vcl轉換成二進位制**執行。

varnish與squid的對比:

缺點:在高併發狀態下,varnish消耗更多的cpu、i/o和記憶體資源。varnish程序一旦掛起、崩潰或者重啟,快取的資料會從記憶體中釋放,此時所有的請求都會**到後端伺服器上,給後端伺服器造成很大壓力。

(1)需要安裝的依賴包有libtool、ncurses-devel、pcre-devel、libxslt、groff、pkgconfig

libedit-devel-2.11-4.20080712cvs.1.e16.x86_64.rpm

python-docutils-0.6-1.e16.noarch.rpm

python-imaging-1.1.6-19.e16.x86_64.rpm

varnish-4.0.1.tar.gz

(2)安裝過程 

1 ~]#

bash autogen.sh #解壓後的原始碼包內有乙個指令碼,我們需要執行以下它

2 ~]#

./configure --prefix=/usr/local/varnish --enable-debugging-symbols --enable-developer-warnings && make && make install

3 ~]#

ln -s /usr/local/varnish/sbin/varnishd /usr/lcoal/sbin

4 ~]#

ln -s /usr/local/varnish/bin/* /usr/local/bin

5 ~]#

cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl #配置檔案模板拷貝出來用

(3)配置反向**

1 ~]#

vim default.vcl

2backend default

6 ~]#

varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80 #指定監聽的ip和埠

7 ~]#

varnishlog #檢視日誌,實時滾動方式

8 測試方法:訪問varniship位址可以看到後端web伺服器的預設首頁,就說明我們配置的反向**沒有問題。

1 ~]#

vim default.vcl

2import directors #

在vcl 4.0;行下面定義乙個負載排程器變數

3 backend web1

7然後再新增下列函式

8sub vcl_init

13在sub vcl_recv {}函式中新增下列語句

14 set req.backend_hint =bar.backend();

15 ~]#

varnishd -c -f /usr/local/varnishd/default.vcl >/root/varnish #檢查語法是否有誤

16 ~]#

pkill varnish

17 ~]#

varnishd -f /usr/local/varnish/default.vcl #載入配置檔案並啟動varnish

18 測試方法:由於varnish快取的原因,當我們訪問varnish的時候,並沒有像我們預期的那樣根據rr演算法各自訪問後面兩台web伺服器的不同頁面,這時我們讓一台web伺服器網路中斷,這時varnish就會訪問到另一台了。

我所知道的varnish高可用就是可以探測後端web節點的健康狀況,檢測到宕機後做記錄,不再傳遞訪問請求了。至於這種方法和負載均衡有什麼不同,還需繼續研究

~]#

vim default.vcl 、

backend web1

}~]#

varnishd -f /usr/local/varnish/default.vcl #載入配置檔案並啟動varnish

Varnish快取伺服器原理

varnish 是什麼 varnish是高效能開源的反向 伺服器和http快取伺服器 varnish的功能與squid伺服器相似,都可以用來做http快取 squid是從硬碟讀取快取的資料,而varnish把資料存放在記憶體中,直接從讀取記憶體,避免了頻繁在記憶體 磁碟中交換檔案,所以varnish...

varnish快取伺服器的搭建

1 在rhel6.5 server7 上安裝varnish,在server8和server9上安裝httpd服務。我用的版本 varnish 3.0.5 1.el6.x86 64 varnish 預設對外提供的埠是6081,自己本地的管理埠是6082 在配置檔案vcl檔案中定義多個後端主機 back...

高效能伺服器設計

原文 http blog.chinaunix.net u 5251 showart 236329.html 先後檢視了 haproxy l7sw 和lighttpd 的相關原始碼,無一例外,他們一致認為多路復用是效能最好的伺服器架構 事實也確實應該如此,程序的出現一方面就是為了儲存任務的執行上下文從...