高性能HTTP加速器Varnish-3.0.3搭建、配置及優化

經過一天的努力,終於將Varnish緩存服務器部署到線上服務器了。趁着熱乎勁兒,趕緊給大家分享一下。Varnish是一個輕量級的Cache和反向代理軟件。先進的設計理念和成熟的設計框架是Varnish的主要特點。下面是Varnish的一些特點:


  • 基於內存進行緩存,重啓後數據將消失;

  • 利用虛擬內存方式,I/O性能好;

  • 支持設置0~60秒精確緩存時間;

  • VCL 配置管理比較靈活;

  • 32位機器上緩存文件大小爲最大2GB;

  • 具有強大的管理功能;

  • 狀態機設計巧妙,結構清晰;

  • 利用二叉堆管理緩存文件,可達到積極刪除目的;

在安裝Varnish之前,系統如果沒有安裝pcre,在編譯Varnish 2.X以上版本時,會提示找不到PCRE庫,而pcre庫是爲了兼容正則表達式,所以必須先安裝pcre庫。下面是pcre的安裝過程: 
首先,下載pcre軟件包: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
進行加壓縮軟件包,進行編譯安裝: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
至此,pcre庫已經安裝完成。接着,建立Varnish用戶以及用戶組,並創建Varnish緩存目錄和日誌目錄。 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
現在可以進行安裝Varnish,這裏將Varnish安裝到/usr/local/目錄下,操作如下: 
       下載最新Varnish-3.0.3軟件包: 
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
        設置安裝參數,然後進行編譯安裝: 
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
        將varnish配置文件和服務寫入到系統: 
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
至此,Varnish安裝完成。現在開始配置Varnish,在配置Varnish之前首先了解一下Varnish處理流程: 
        
        高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
        Varnish處理HTTP請求的過程大致分爲如下幾個步驟: 
        1> Receive狀態:請求處理入口狀態,根據VCL規則判斷該請求應該Pass或Pipe,還是進入Lookup(本地查詢)。 
        2> Lookup狀態:進入此狀態後,會在hash表中查找數據,若找到,則進入Hit狀態,否則進入Miss狀態。
        3> Fetch狀態:在Fetch狀態下,對請求進行後端獲取,發送請求,獲得數據,並進行本地存儲。 
        4> Deliver狀態:將獲取到的數據發送給客戶端,然後完成本次請求。 
        現在Varnish的處理原理現在大家都明白了,那麼下面來進行配置一個實例。由於版本不同,Varnish配置文件的寫法也存在一定的差異,本配置文件以Varnish 3.x版本爲基準。 
        Varnish安裝完成後,默認的配置文件爲/usr/local/varnish/etc/varnish/default.vcl,此文件內容默認全部被註釋掉。這裏以這個文件爲模板,創建一個新的文件vcl.conf,並且將其放到/usr/local/varnish/etc目錄下。配置完成的vcl.conf文件如下: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 


高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 

高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 



高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 

高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
在安裝Varnish時,已經將Varnish的管理腳本複製到相應的目錄下,這裏稍作修改即可。首先修改/etc/sysconfig/varnish文件。配置好的文件如下: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
這裏需要說明的是,在32位操作系統下,最大隻能支持2GB的緩存文件Varnish_cache.data,如果需要更大的緩存文件,則需要安裝64位的操作系統。 
接下來修改的文件是/etc/init.d/varnish,找到如下機房,修改相應的路徑即可: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
其中,exec用於指定Varnish的路徑,只需要修改爲Varnish安裝路徑下賭贏的Varnishd文件即可;config 用於指定Varnish守護進程配置文件路徑。 
兩個文件修改完畢,就可以授權、運行/etc/init.d/varnish腳本了。執行過程如下: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
最後啓動varnish,如下所示: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
查看運行狀態: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
如上圖,可得知Varnish已經成功啓動。現在可以測試是Varnish的作用了,可通過Curl進行測試: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
通過上圖,可得知該URL鏈接已經被緩存,緩存命中率的高低直接說明了Varnish的運行狀態和效果,較高的緩存命中率說明Varnish運行狀態良好,Web服務器的性能也會提高很多;反之,過低的緩存命中率說明Varnish的配置可能存在問題,需要進行調整。因此,從整體上了解Varnish的命中率和緩存狀態,對於優化和調整Varnish至關重要。 
Varnish提供了一個Varnishstat命令,通過它可以獲得很多重要的信息。下面是一個Varnish系統的緩存狀態:
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
由於執行完varnishstat命令之後,會自動跳轉到一個畫面,就無法看到執行命令。爲方便大家理解,將命令放在執行結果最底部。這裏需要注意一下幾點:

  • "Client connections accepted":表示客戶端向方向代理服務器成功發送HTTP請求的總數量。
  • "Client requests received":表示到現在爲止,瀏覽器向反向代理服務器發送HTTP請求累計次數。由於會使用長連接,因此這個值一般會大於"Client connections accepted"的值。
  • "Cache hits":表示方向代理服務器在緩存區中查找並且命中緩存的次數。
  • "Cache misses":表示直接訪問後端主機請求數量,也就是非命中數。
  • "N struct object":表示當前被緩存的數量。
  • "N expired objects":表示過期的緩存內容數量。
  • "N LRU moved objects" :表示被淘汰的緩存內容個數。

Varnish的安裝和配置基本上完成了。安裝之後Varnish是否能穩定、快速地運行,與Linux本身的優化及Varnish自身參數的設置有很大關係。在安裝配置完Varnish後,還必須從操作系統和Varnish配置參數兩個方向對Varnish服務器進行性能優化,從而最大限度地發揮Varnish的性能優勢。 
內核參數是用戶系統內核之間交互的一個接口,通過這個接口,用戶可以在系統運行的同時動態更新內核配置,而這些內核參數是通過Linux proc文件系統存在。因此,可以通過調整proc文件系統達到優化Linux性能的目的。 
修改/etc/sysctl.conf文件進行優化,具體參數如下: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
修改ulimit設置,默認情況下Ulimit設置完成之後會臨時生效。當下次重啓機器之後,Ulimit會失效。爲了下次機器啓動之後,還會生效。將ulimit設置放到/etc/rc.d/rc.local文件下。具體參數如下: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
至此,LINUX系統方面優化就算完成了。現在還是優化Varnish。打開/etc/sysconfig/varnish啓動腳本,優化參數如下: 
高性能HTTP加速器Varnish-3.0.3搭建、配置及優化 
至此,Varnish的安裝、配置以及優化基本上完成了。希望David分享的內容對大家有用,如果有什麼問題,還望大家指正!今天就到此爲止了!

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