日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁西西教程其它教程 → Linux服務(wù)器反向代理軟件varnish安裝、配置和監(jiān)控教程

      Linux服務(wù)器反向代理軟件varnish安裝、配置和監(jiān)控教程

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/3/28 21:38:41字體大。A-A+

      作者:西西點擊:0次評論:0次標簽: 反向代理

      • 類型:遠程監(jiān)控大小:4.6M語言:中文 評分:5.6
      • 標簽:
      立即下載

      Varnish作為反向代理軟件,應(yīng)用于Web 前端,其良好的Cache性能使得網(wǎng)站承載能力有很大提升,下面記錄下最近使用在Varnish學習與應(yīng)用中的實踐體會,本篇主要內(nèi)容:安裝 配置 監(jiān)控。

      一、varnish安裝
      通常有兩種方法:
      1.下載安裝文件,本地編譯安裝
      2.連到官網(wǎng),自動安裝(比較簡單)
      httPS://www.varnish-cache.org/installation/redhat

      二、配置文件
      1、配置Varnish 啟動運行參數(shù),如指定對應(yīng)執(zhí)行腳本,即vcl文件
      Varnish管理端口,默認為6082,可以改為自己定義的端口,如2000
      VARNISH_ADMIN_LISTEN_PORT=2000
      監(jiān)聽端口,默認為8080,一般改為80
      VARNISH_LISTEN_PORT=80
      指定緩存文件存放路徑
      VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin
      緩存文件varnish_storage.bin在32位操作系統(tǒng)下,最大僅能支持2G,
      如果需要更大緩存文件則需要安裝64為Linux操作系統(tǒng)

      2、配置varnish為服務(wù)形式運行
      3.0以上版本,安裝好varnish后自動配置好了,即直接可以使用service varnish start命令執(zhí)行
      3.0以下版本,需要手動配置一下相應(yīng)的配置文件
      1)找到對應(yīng)版本的安裝包下varnish.initr文件,如
      C:/.../varnish-3.0.1/redhat/varnish-3.0.1/redhat/varnish.initrc
      2) 更改varnish.initrc中配置項,主要執(zhí)行參數(shù)
      3) 若參數(shù)是默認的配置形式etc/sysconfig/varnish,可以省略第2)步
      4) 將varnish.initrc改名為varnish
      5) copy varnish 到 /etc/rc.d/init.d/下
      6) 給varnish指定執(zhí)行權(quán)限chmod 700 /etc/rc.d/init.d/varnish
      7) chkconfig --add varnish
      三、查看Varnish運行狀態(tài)
      ps -aux|grep varnishd
      正常結(jié)果如下

      也可以通過top |grep varnishd查看
      四、查看Varnish日志
      1、使用varnishlog命令查看日志,可以加些參數(shù),具體可通過-h獲得參數(shù)說明
      如varnishlog -i txurl 命令去查看是哪些URL導致回源的
      2、將日志保存到一文件
      需要用到varnishncsa指令,如
      varnishncsa -w /var/lib/varnish/varnish.log 將varnishlog 保存在一個文件里
      文件格式為文本格式,比較方便查看
      五、查看Varnish緩存情況
      1、通過varnishstat 查看當前及自啟動以來的請求及緩存命中情況

      結(jié)果數(shù)據(jù)的含義:

      第一行顯示的是varnish自啟動到現(xiàn)在運行了多長時間,如上圖顯示的是45天0小時11分27秒
      第二行顯示的是啟動這個命令的時間,這個三數(shù)字最終會變?yōu)?0,100,1000;分別代表10秒,100秒,1000秒
      第三行顯示的是命中率,分別對象上面的時間,分別是10秒內(nèi)的命中率,100秒內(nèi)的命中率,1000秒內(nèi)的命中率
      從第四行開始下面的數(shù)據(jù)就分為4列
      第一列為總數(shù)值,第二列為每秒中的數(shù)值,第三列自命令(varnishstat)啟動以來的平均值,第四列是描述

      其中幾個比較重要的是

      Client connections accepted:表示客戶端向反向代理服務(wù)器成功發(fā)送HTTP請求的總數(shù)量
      Client requests received:表示到現(xiàn)在為止,瀏覽器向反向代理服務(wù)器發(fā)送HTTP請求的累積次數(shù),由于可能會使用長連接,所以這個值一般會大于Client connections accepted
      cache-hit :代表緩存命中次數(shù)
      miss-hit :代表未命中次數(shù)
      worker threads :代表當前工作線程的數(shù)量
      expired objects :代表過期對象的個數(shù)
      LRU nuked objects :代表緩存可使用的內(nèi)存以達上線而不得不移除的對象個數(shù)
      LRU moved objects :代表LRU策略被移動的對象個數(shù)
      Total header bytes :代表緩存的請求頭對象的大小
      Total body bytes:代表緩存的請求體對象大小

      命中率公式:cache-hit / Client requests received

      2、若每次查看varnish當前緩存情況都要登錄Server,有點麻煩
      可以用php(可以用其它語言)編寫一段程序,遠程查看
      代碼可以參考如下,3.0以下的版本可以通過Socket連接到Varnish管理端口,通過stat命令查看,3.0以上沒有stat命令,只能通過下面的方法解決

      <?php 

      $outfile=shell_exec("/usr/bin/varnishstat -x ");
      $xml=simplexml_load_string($outfile);
      echo $xml->getName() . "<br />";
      foreach($xml->children() as $child)
        {
            //$tmpName="";
            foreach($child->children() as $subChild)
            {
              if ($subChild->getName() =="name" )
               {
                  $tmpName=$subChild;
              }
              else  if ($subChild->getName() =="value" )
              {
                  if ($tmpName!="")
                  {
                     $arys["$tmpName"]=$subChild;
                     $tmpName="";
                  }
              }
              else
               {
                  continue;
              }
            }
        }
        function byteReduce($bytes)
        {
            if ($bytes>1099511627776)
            {
                return round($bytes/1099511627776)."TB";
            }
            else if ($bytes > 1073741824)
            {
                return round($bytes/1073741824)."GB";
            }
            else if ($bytes>1048576)
            {
                return round($bytes/1048576)."MB";
            }
            else if ($bytes>1024)
            {
                return round($bytes/1024)."KB";
            }
            else
            {
                return $bytes."B";
            }
        }
        echo "client_conn: ".$arys["client_conn"] . "<br />";
        echo "client_req: ".$arys["client_req"] . "<br />";
        echo "cache_hit: ".$arys["cache_hit"] . "<br />";
        echo "cache_miss: ".$arys["cache_miss"] . "<br />";
        echo "Cache hit rate: ".round(($arys["cache_hit"]/$arys["client_req"])*100)." % <br/>";
        echo "LRU nuked objects: ".$arys[n_lru_nuked]."<br/>";
        echo " ".byteReduce($arys["s_bodybytes"]+$arys["s_hdrbytes"])." Acc Content (".byteReduce($arys["s_hdrbytes"])." header ".byteReduce($arys["s_bodybytes"])." Body)";
      ?>

      頁面效果如

      當然為了查看實時情況,可以在這監(jiān)控頁加個html定時刷新

      若已經(jīng)部署了專業(yè)的監(jiān)控工具如catic ,則可以通過配置,在catic中查看Varnish 運行狀態(tài)

      3.0以上版本,需要一個php頁面輸出結(jié)果echo shell_exec("/usr/bin/varnishstat -x ");然后catic中配置下即可

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)