varnish 4.0 官方文檔翻譯5-varnish概況

The Big Varnish Picture varnish概況

本節將回答這個問題:「varnish」究竟是什麼,命名的點點滴滴。html

varnish兩個主要的部分是在varnisd項目中的兩個進程。第一個進程被叫作「the manager」,主要功能是告訴你,系統管理員,發生了什麼。程序員

第二個進程被叫作「the worker」或者是「the child」,這個進程是實際處理你http請求的進程。web

當你啓動varnishd,manager進程啓動,一旦manager處理完全部的命令行參數,child進程就開始啓動了。若是child進程down掉,manager進程會重啓child,自動的,無需干預。緩存

這樣設計的主要緣由是爲了安全考慮,manager爲了能監聽在80端口,以root運行,可是child進程只須要很小的權限。安全

manager進程是互動的,提供了CLI-命令行接口,能夠手動,腳本以及程序調用。CLI提供Varnish處理HTTP請求的幾乎所有控制,同時咱們已經不遺餘力,以確保你不該該須要從新啓動varnish,除非你須要修改最底層的東西。cookie

CLI是遠程訪問安全的,使用簡單靈活的PSK -- Pre Shared Key,因此很容易集成到你的業務或者綁定到你的CMSide

全部的這些都包含在Starting and running Varnish 好比,子進程怎樣處理http請求,緩存什麼,哪一個http頭須要移除等等,都是用一個輕量級的變成語言,叫VCL--Varnish配置語言。manager進程將編譯VCL程序同時檢查是否出錯,可是是child進程來運行VCL程序,在處理請求時。工具

由於VCL編譯成C代碼,C代碼編譯成機器指令,所以即使是複雜的VCL程序執行也是毫秒級的,不會對性能產生影響。 若是你不是一個真正的程序員,不要煩惱,VCL是很簡單:性能

sub vcl_recv {
        # Remove the cookie header to enable caching
        unset req.http.cookie;
}

CLI容許你隨時編譯和加載行的VCL程序,你也能夠實時的轉換兩套程序,不須要重啓child進程,同時不會丟失http請求。 VCL代碼可使用VMODs擴展模塊來擴展,若是你能夠甚至是C代碼。所以varnish能對你的http請求作什麼,真的是沒有限制的。網站

VCL - Varnish Configuration Language 描繪了VCL以及它能詳細的作什麼 varnish使用共享內存分塊的方式報告和記錄實時狀態。對於每一個http請求,大量的詳細的記錄是追加到log的內存塊。其餘進程能夠查看日誌記錄,過濾,以Apache/NCSA風格爲例。 其餘的內存塊是用來統計計數的,實時的,精確到毫秒級的監控緩存,資源使用狀況以及各項性能指標。 varnish有大量的工具可使用共享內存,varnishlog,varnishstats,varnishncsa等等,你也可使用API庫編寫你本身的工具,只要你須要。 Reporting and statistics 報告和統計 說明全部的工做原理。 對varnish感興趣的最可能的緣由,是你想讓你的網站工做的更好。加速一個web站點是有不少方面的。一個簡單的策略是使用緩存,設計物理分割的多等級的使用ESI的CDN緩存,宕機自動切換。 Varnish and Website Performance varnish和web站點的性能 最後,Murphys Law 應用:Things will go wrong, and more likely than not, they will do so at zero-zero-dark O'clock. Most likely during a hurricane, when your phone battery is flat and your wife had prepared a intimate evening to celebrate your anniversary.體會下,事情總會出問題,也比不過,12點的黑暗,颶風的時候,你的妻子準備了一個舒適的晚餐來慶祝大家的記念日,而你的手機沒電了。。。。

相關文章
相關標籤/搜索