2KB项目,专业的源码交易网站 帮助 收藏 每日签到

运用 Varnish 减速你的 Web 网站

  • 时间:2019-05-17 23:56 编辑:2KB 来源:2KB.COM 阅读:492
  • 扫一扫,手机访问
  • 分享
摘要:
Varnish 英文原文:Speed Up Your Web Site with Varnish

Varnish可以有效下降webServer的负载,晋升拜访速度。依据官方的说法,Varnish是一个cache型的HTTP反向代办署理。

依照HTTP协议的处置进程,webServer承受恳求而且前往处置后果,幻想状况下Server要在不做额定处置的状况下,立刻前往后果,但实践状况并不是如斯。本文将剖析在webServer处置恳求的过程当中,Varnish能起到甚么用处。

webServer的完成千差万别,但典范的处置进程是类似的,都要颠末一系列的步调来处置接纳到的每一个恳求。有可能需求启动一个过程来处置恳求,有可能需求从磁盘上载入文件,或者启动外部线程来编译履行一些剧本。在履行剧本的过程当中,还会有实行非常多此外举措,比方实行数据库查询,读取文件等等。当做百上千个恳求并发拜访时,Server的负载会很快上升,呈现系统资本不敷的状况。一种更糟的状况是,非常多恳求是反复的,但webServer没法记着已经作出的呼应,还会反复上面庞杂的处置进程。

当把Varnish安排上以后,web恳求的处置进程会有一些变更。客户真个恳求将起首被Varnish承受。Varnish将剖析接纳的恳求,并将其转发到后真个webServer上。后真个webServer对恳求实行惯例的处置,并将顺次将处置后果前往给Varnish

但Varnish的功用并不是仅限于此。Varnish的中心功用是能能将后端webServer前往的后果缓存起来,假如发明后续有类似的恳求,Varnish将不会将这个恳求转发到webServer,而是前往缓存中的后果。这将有效的下降webServer的负载,晋升呼应速度,而且每秒可以呼应更多的恳求。Varnish速度很快的另外一个首要缘由是其缓存全体都是放在内存里的,这比放在磁盘上要快的多。诸如斯类的优化办法使得Varnish的响应速度超乎想象。但思索到实践的系统中内存通常为有限的,所以需求手工设置装备摆设一下缓存的空间限额,同时防止缓存反复的内容。

下面来看一下Varnish的安装进程。可以从源码实行安装,也能够直接运用一些刊行版中的预编译包。当期Varnish的版本是3.0.3(译者注:今朝最新是2013年6月17日宣布的3.0.4版),本文将基于3.0.3实行源码安装。需求留意的是,2.X版的Varnish和3.X的设置装备摆设文件格局发作了变更。可以从Varnish的官方网站上找到2.x到3.x晋级的细节。

从源码实行安装常常碰到的问题是系统缺少某些依靠的文件。可以从Varnish安装文档里找到编译所需的一切依靠的文件。

以root身份运转以下号令来下载和安装Varnish。

cd /var/tmp
wget http://repo.varnish-cache.org/source/varnish-3.0.3.tar.gz
tar xzf varnish-3.0.3.tar.gz
cd varnish-3.0.3
sh autogen.sh
sh configure
make
make test
make install
Vanish将安装在/usr/local目次下。主顺序的完好途径为:/usr/local/sbin/varnishd,默许的设置装备摆设文件为:/usr/local/etc/varnish/default.vcl

在运转varnishd之前,需求先设置装备摆设后真个webServer,参照以下格局编辑default.vcl文件,更改成你本人webServer设置装备摆设。

backend default {
    .host = "127.0.0.1";
    .port = "80";
}

用以下号令启动Varnishd:
/usr/local/sbin/varnishd -f /usr/local/etc/varnish/default.vcl 
 ?-a :6081 -P /var/run/varnish.pid -s malloc,256m

履行终了后,Varnish将进入后台运转,同时前往号令行形态。需求留意的是,Varnish运转时会同时启动两个过程,一个主过程,一个是子过程,假如子过程呈现问题,主过程将从头生成一个子过程。

Varnishd 的启动选项

-f : 指定设置装备摆设文件地位

-a : varnish监听的当地地址和端口。

-P :PID文件地位,用来封闭Varnish

-s :cache设置装备摆设。默许运用256M内存

假如从一些保证理器来安装varnish,可能安装终了后就会主动运转。这类状况下需求先停掉它。并运用上述号令选项来运转。不然一些设置装备摆设可能和本文例子中的分歧了。可以用下面的号令来反省varnish的运转状况和设置装备摆设。

/usr/bin/pgrep -lf varnish

启动终了以后,Varnish就能够处置并转发恳求了。在转发过程当中,varnish会尽量的缓存后果。我们经过下面几个容易的GET恳求,来看看varnish是怎么任务的。起首,运转以下号令:

/usr/local/bin/varnishlog
/usr/local/bin/varnishstat
下面的GET号令是perl的libwww-perl中的。运用这个号令可以看到varnish前往的HTTP呼应的细节。假如你的系统里没有安装libwww-perl,也能够运用Firefox中live HTTP Headers扩大,或者运用其他相似Tools也能够。


GET -Used http://localhost:6081/

在这里GET号令的选项无所谓。需求留意的是varnish前往的呼应,varnish会增加三个响应头信息,辨别是“X-Varnish”、“Via”和“Age”。这些头信息在Varnish的处置过程当中十分有效。X-Varnish头信息的前面会有一个或两个数字,假如是一个数字,就标明varnish在缓存中没有发明这个恳求,这个数字的寄义是varnish为这个恳求所做的标志ID。假如X-Varnish后是两个数字,就标明varnish在缓存中射中了这个恳求,第一个数字是恳求的标识ID,第二个数字是缓存的标识ID。“Via”头信息标明这个恳求将颠末一个代办署理。“Age”头信息标识出这个恳求将被缓存多长工夫(单元:秒)。初次恳求的“Age”为0,后续的反复恳求将会使Age值增大。假如后续的恳求没有是“Age”增加,那就阐明varnish没有缓存这个呼应的后果。

如今来看看 varnishstat 号令启动履行的状况,以下图所示:

图2. varnishstat 号令

最主要的是 cache_hit 和 cache_miss 这两行。假如没有任何射中,cache_hits 不会显示。当愈来愈多的恳求出去,计数器会不时更新以反响新的射中数和未射中数。

接下来看看 varnishlog 号令:

图3. varnishlog 号令

上图显示varnish承受恳求并作出呼应的外部细节,下面是varnish官方文档中的说明:

第一列是一个乱数,用来标识以后恳求。第一列数字类似的行属于一HTTP恳求序列。第二列是日记信息的标签,一切的日记信息会分类标志,以“Rx”扫尾的为接纳的数据,以“Tx”扫尾的为发送的数据。第三列表现数据在客户端,vainish和webServer之间的传输形态。第四列是被日记记载的数据。
varnishlog号令有非常多的选项可以在查询时运用。激烈引荐在排错或测试时运用varnishlog。可以浏览varnish的man page来检查这个号令的具体运用状况。下面是一些运用的例子。 本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部