国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页服务器类Linux服务器 → Linux服务器反向代理软件varnish安装、配置和监控教程

Linux服务器反向代理软件varnish安装、配置和监控教程

我要评论 2013/03/29 12:47:27 来源:国语自产精品视频在线看 编辑:zbbingyang.com [ ] 评论:0 点击:326次

Varnish作为反🗿向代理【xiàng dài lǐ】软件⌛,应用于Web 前端⭐,其良好【qí liáng hǎo】的【de】🙂Cache性能使得网站承载能力有很大提升【dà tí shēng】,下面记🚷录下最【lù xià zuì】近使用➡在Varnish学习与【xué xí yǔ】应用中的【de】🙂实践体会,本篇主🏅要内容🚛:安装【ān zhuāng】 配置 监控。

一【yī】🤾、varnish安装🤠
通常有【tōng cháng yǒu】两种方法:
1.下载安装🤠文件,本地编译安装【yì ān zhuāng】🤠
2.连到官【lián dào guān】网〰,自动安装🤠(比较简【bǐ jiào jiǎn】单😷)
https://www.varnish-cache.org/installation/redhat

二🚢、配置文⛪件【jiàn】✒
1、配置Varnish 启动运行参数,如【rú】指定📯对应执行脚本,即🔤vcl文件【wén jiàn】👷
Varnish管理端【guǎn lǐ duān】口【kǒu】,默认为【wéi】6082,可以改【kě yǐ gǎi】为【wéi】自己定义的♎端口【kǒu】,如【rú】2000
VARNISH_ADMIN_LISTEN_PORT=2000
监听端口【kǒu】,默认为【wéi】8080,一般改😑为【wéi】80
VARNISH_LISTEN_PORT=80
指定缓【zhǐ dìng huǎn】存文件【wén jiàn】👷存放路【cún fàng lù】径【jìng】
VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin
缓存文件【wén jiàn】👷varnish_storage.bin在【zài】👂32位操作系【cāo zuò xì】统下🍒,最大仅🗓能支持【néng zhī chí】2G,
如【rú】果需👽要更大缓存文件【wén jiàn】👷则需要安装64为【wéi】Linux操作系【cāo zuò xì】统🔽

2、配置🔮varnish为服务🐿形式【xíng shì】运行
3.0以上版【yǐ shàng bǎn】本,安装好varnish后自动配置🤤好了🚶,即直接可以使用【yòng】🎿service varnish start命令执🌀行
3.0以下🛍版本,需要手动配置🤤一下【yī xià】🛍相应的【xiàng yīng de】配置🍼文件【wén jiàn】
1)找到对【zhǎo dào duì】应版本【yīng bǎn běn】😗的安装【de ān zhuāng】包下🛍varnish.initr文件【wén jiàn】,如
C:/.../varnish-3.0.1/redhat/varnish-3.0.1/redhat/varnish.initrc
2) 更改【gèng gǎi】varnish.initrc中配置🍥项🤙,主要执行参数
3) 若参数【ruò cān shù】是默认【shì mò rèn】的配置🍼形式【xíng shì】etc/sysconfig/varnish,可以省略第📉2)步🍘
4) 将varnish.initrc改名为🌛varnish
5) copy varnish 到【dào】 /etc/rc.d/init.d/下🛍
6) 给【gěi】varnish指定执🎆行权限【háng quán xiàn】💍chmod 700 /etc/rc.d/init.d/varnish
7) chkconfig --add varnish
三、查看Varnish运行状态【tài】
ps -aux|grep varnishd
正常结果如下【guǒ rú xià】🛍

也可以🥑通过🖥top |grep varnishd查看【chá kàn】⛳
四🧓、查看【chá kàn】⛳Varnish日志【rì zhì】
1、使用varnishlog命令查看【chá kàn】⛳日志【rì zhì】,可以加些参数✂,具体可通过🖥-h获得参【huò dé cān】数说明
如varnishlog -i txurl 命令去查看【chá kàn】是📍哪些URL导致回源的【yuán de】
2、将日志【rì zhì】保存到【bǎo cún dào】一文件
需要用到varnishncsa指令,如
varnishncsa -w /var/lib/varnish/varnish.log 将varnishlog 保存在【bǎo cún zài】一个文【yī gè wén】😌件里【jiàn lǐ】
文件格式为文【shì wéi wén】🌽本格式【běn gé shì】🎫,比较方【bǐ jiào fāng】便查看【chá kàn】😪
五【wǔ】、查看【chá kàn】⛳Varnish缓存情【huǎn cún qíng】🏻况🚫
1、通过🖥varnishstat 查看【chá kàn】⛳当前及【dāng qián jí】自启动以来的【yǐ lái de】请求及缓存命中🐦情况🚫
 

结果数据的含义:

第一行显示的【xiǎn shì de】🖇是varnish自启动到现在运行了多长时📥间👄,如上图【rú shàng tú】显示的【xiǎn shì de】🖇是45天0小时【xiǎo shí】11分【fèn】🈲27秒【miǎo】🚌
第二行🌟显示的【xiǎn shì de】🖇是启动这个命令的时【lìng de shí】间👄,这个三📿数字最终会变为10,100,1000;分【fèn】🈲别代表10秒【miǎo】🚌,100秒【miǎo】🚌,1000秒【miǎo】🚌
第三行显示的【xiǎn shì de】🖇是命中【shì mìng zhōng】🚑率,分【fèn】别对⏬象上面【xiàng shàng miàn】的时间【de shí jiān】👄,分【fèn】🈲别是10秒【miǎo】🚌内的命中率【zhōng lǜ】,100秒【miǎo】🚌内的命中率【zhōng lǜ】,1000秒【miǎo】🚌内的命中率【zhōng lǜ】
从第四【cóng dì sì】行开始【háng kāi shǐ】下面的⬆数据就分【fèn】为💫4列
第一列为总数值【zhí】➰,第二列为每秒【miǎo】🎑中的数值【zhí】➰,第三列【dì sān liè】😄自命令🎞(varnishstat)启动以📯来的平【lái de píng】均值【jun1 zhí】➰,第四列【dì sì liè】是描述🎞

其中几个比较重要的是

Client connections accepted:表示客【biǎo shì kè】户端向反向代😺理服务【lǐ fú wù】💷器成功发送【fā sòng】🕌HTTP请求的【qǐng qiú de】🏳总数量【zǒng shù liàng】
Client requests received:表示到现在为🐬止【zhǐ】,浏览器🚇向反向代😺理服务【lǐ fú wù】💷器发送【fā sòng】🕌HTTP请求的【qǐng qiú de】🏳累积次数【cì shù】,由于可🎽能会使🔃用长连【yòng zhǎng lián】接,所以这【suǒ yǐ zhè】个值一【gè zhí yī】🕹般会大【bān huì dà】⚪于🕧Client connections accepted
cache-hit :代表缓【dài biǎo huǎn】🙄存命中次数【cì shù】
miss-hit :代表【dài biǎo】🐬未命中【wèi mìng zhōng】次数【cì shù】
worker threads :代表【dài biǎo】🐬当前工【dāng qián gōng】作线程【zuò xiàn chéng】的🔟数量
expired objects :代表【dài biǎo】🐬过期对象😮的个数
LRU nuked objects :代表缓【dài biǎo huǎn】🙄存可使🛳用的内存以达【cún yǐ dá】上线而不得不移除的对象个【duì xiàng gè】数
LRU moved objects :代表【dài biǎo】🐬LRU策略被移动的对象个【duì xiàng gè】数
Total header bytes :代表缓【dài biǎo huǎn】🙄存的请求头对象的大小🛹
Total body bytes:代表缓【dài biǎo huǎn】🙄存的请求体对【qiú tǐ duì】🗽象大小🛹

命中率公式【gōng shì】📸:cache-hit / Client requests received

2、若每次【ruò měi cì】查看🏼varnish当前缓存情况【cún qíng kuàng】都要登录🏯Server,有点麻【yǒu diǎn má】烦🦁
可以用php(可以用其它语🤲言)编写一段程序🔼,远程查【yuǎn chéng chá】⭕看🏼
代码可以参考🚻如下,3.0以下的【yǐ xià de】版本可🥍以通过【yǐ tōng guò】🚳Socket连接到Varnish管理端【guǎn lǐ duān】口,通过【tōng guò】🚳stat命令【mìng lìng】🎊查看🏼,3.0以上没有stat命令【mìng lìng】🎊,只能通【zhī néng tōng】过🚳下面的【xià miàn de】方法解决

<?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)"; ?>

页面效🦕果如【guǒ rú】
 

当然为了查看【le chá kàn】🌐实时情况🤞,可以在【kě yǐ zài】📣这监控【zhè jiān kòng】页加个html定时刷新

若已经部署了【bù shǔ le】专业的监控工【jiān kòng gōng】具如【jù rú】catic ,则可以👱通过配【tōng guò pèi】置📙,在catic中查看🔻Varnish 运行状态🎭

3.0以上版本👍,需要一💲个php页面输出结果【chū jié guǒ】echo shell_exec("/usr/bin/varnishstat -x ");然后catic中配置【zhōng pèi zhì】💥下即可【xià jí kě】

关键词:Linux服务器

阅读本文后您有什么感想? 已有 人给出评价!

  • 1 欢迎喜欢
  • 1 白痴
  • 1 拜托
  • 1 哇
  • 1 加油
  • 1 鄙视