天天看點

varnish基礎應用

varnish主要用于緩存伺服器,還有一些其他軟體也能實作緩存功能,例如memcached但是它主要緩存的是數值資料,适用于緩存mysql的資料;而nginx也有緩存功能,也可在反代時為後端主機提供緩存,但是nginx常用于反代伺服器使用,也不建議一個主機承載多任務工作,這樣會代理性能降低;而varnish正是常作為http協定的反代工作的。

現代網際網路服務,為了提供使用者良好的體驗,通路網站打開頁面的速度要求非常快,是以各網站基本都把資源盡量放在用戶端最近的通路節點上,即常說的把資源推送到使用者的家門口。實作方式常用的有兩種方式:一種是使用CDN,另一種就是把使用者請求都指向一個入口,在客戶請求的入口處部署緩存伺服器,把熱點資源都放在離使用者最近的緩存伺服器上。varnish就工作在第二種方式中,當做緩存伺服器給使用者帶來良好的通路體驗的。

同樣功能的還有一款軟體squid,與varnish的關系,相當于httpd與nginx的關系;squid出現比較早,但面臨較大負載時工作非常穩定,且功能豐富,同時支援正向、反向代理;varnish是比較輕量,主要用來實作反代;但超過承受的負載時,可能很不穩定;

安裝varnish:

]# yum install varnish

安裝varnish的文檔包

]# yum -y install varnish-docs

varnish主機:172.18.11.111

後端web主機:

RS1:172.18.11.11

RS2:172.18.11.12

varnish主機:

]# vim /etc/varnish/default.vcl

<a href="http://s5.51cto.com/wyfs02/M01/82/11/wKiom1dJt9ah8ONbAAB6u8Tq3vI776.png" target="_blank"></a>

]# vim /etc/varnish/varnish.params

<a href="http://s2.51cto.com/wyfs02/M01/82/0F/wKioL1dJuUTQQ6hHAACgRIlcJjI092.png" target="_blank"></a>

啟動varnish專用指令行:

]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082

vcl.load test1 default.vcl

顯示:

<a href="http://s2.51cto.com/wyfs02/M02/82/0F/wKioL1dJulHCIk9nAAAIpP5CDsU360.png" target="_blank"></a>

沒問題後,再輸入:

vcl.use test1

<a href="http://s5.51cto.com/wyfs02/M02/82/10/wKioL1dJuoSC2c8wAAAIbLV0KKQ594.png" target="_blank"></a>

沒問題後,可浏覽器測試。

分别在後端兩web伺服器提供測試頁:

]# vim /var/www/html/index.html

&lt;h1&gt;RS1 172.18.11.11&lt;/h1&gt;

&lt;h1&gt;RS2 172.18.11.12&lt;/h1&gt;

浏覽器輸入:http://172.18.11.111/

重新整理後交替顯示:

<a href="http://s1.51cto.com/wyfs02/M01/82/10/wKioL1dJu27QEblmAAA3b3YgxvY744.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M00/82/11/wKiom1dJunXyj9GyAAA0K-Vkyjs668.png" target="_blank"></a>

停掉後端一台web伺服器,繼續通路仍能提供web服務。

本文轉自 crystaleone 51CTO部落格,原文連結:http://blog.51cto.com/linsj/1784160,如需轉載請自行聯系原作者

繼續閱讀