国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux服務器反向代理軟件varnish

2020-05-27 13:44:30
字體:
來源:轉載
供稿:網友

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

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

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

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

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

結果數據的含義:

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

其中幾個比較重要的是

Client connections accepted:表示客戶端向反向代理服務器成功發送HTTP請求的總數量Client requests received:表示到現在為止,瀏覽器向反向代理服務器發送HTTP請求的累積次數,由于可能會使用長連接,所以這個值一般會大于Client connections acceptedcache-hit :代表緩存命中次數miss-hit :代表未命中次數worker threads :代表當前工作線程的數量expired objects :代表過期對象的個數LRU nuked objects :代表緩存可使用的內存以達上線而不得不移除的對象個數LRU moved objects :代表LRU策略被移動的對象個數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)";?>

頁面效果如 

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

若已經部署了專業的監控工具如catic ,則可以通過配置,在catic中查看Varnish 運行狀態

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁力市| 武宁县| 玛曲县| 乌海市| 阿尔山市| 沅江市| 忻城县| 姜堰市| 滦南县| 靖远县| 肃南| 裕民县| 汤阴县| 茂名市| 长顺县| 镇雄县| 海原县| 海晏县| 苍溪县| 涞源县| 九龙城区| 福贡县| 桦川县| 乐至县| 磐安县| 育儿| 确山县| 赣州市| 乐都县| 泗阳县| 青冈县| 望都县| 视频| 武强县| 桃园市| 仪陇县| 长乐市| 平利县| 尚志市| 平乐县| 从江县|