天天看点

varnish基础应用

varnish主要用于缓存服务器,还有一些其他软件也能实现缓存功能,例如memcached但是它主要缓存的是数值数据,适用于缓存mysql的数据;而nginx也有缓存功能,也可在反代时为后端主机提供缓存,但是nginx常用于反代服务器使用,也不建议一个主机承载多任务工作,这样会代理性能降低;而varnish正是常作为http协议的反代工作的。

现代互联网服务,为了提供用户良好的体验,访问网站打开页面的速度要求非常快,所以各网站基本都把资源尽量放在客户端最近的访问节点上,即常说的把资源推送到用户的家门口。实现方式常用的有两种方式:一种是使用CDN,另一种就是把用户请求都指向一个入口,在客户请求的入口处部署缓存服务器,把热点资源都放在离用户最近的缓存服务器上。varnish就工作在第二种方式中,当做缓存服务器给用户带来良好的访问体验的。

同样功能的还有一款软件squid,与varnish的关系,相当于httpd与nginx的关系;squid出现比较早,但面临较大负载时工作非常稳定,且功能丰富,同时支持正向、反向代理;varnish是比较轻量,主要用来实现反代;但超过承受的负载时,可能很不稳定;

安装varnish:

]# yum install varnish

安装varnish的文档包

]# yum -y install varnish-docs

varnish主机:172.18.11.111

后端web主机:

RS1:172.18.11.11

RS2:172.18.11.12

varnish主机:

]# vim /etc/varnish/default.vcl

<a href="http://s5.51cto.com/wyfs02/M01/82/11/wKiom1dJt9ah8ONbAAB6u8Tq3vI776.png" target="_blank"></a>

]# vim /etc/varnish/varnish.params

<a href="http://s2.51cto.com/wyfs02/M01/82/0F/wKioL1dJuUTQQ6hHAACgRIlcJjI092.png" target="_blank"></a>

启动varnish专用命令行:

]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082

vcl.load test1 default.vcl

显示:

<a href="http://s2.51cto.com/wyfs02/M02/82/0F/wKioL1dJulHCIk9nAAAIpP5CDsU360.png" target="_blank"></a>

没问题后,再输入:

vcl.use test1

<a href="http://s5.51cto.com/wyfs02/M02/82/10/wKioL1dJuoSC2c8wAAAIbLV0KKQ594.png" target="_blank"></a>

没问题后,可浏览器测试。

分别在后端两web服务器提供测试页:

]# vim /var/www/html/index.html

&lt;h1&gt;RS1 172.18.11.11&lt;/h1&gt;

&lt;h1&gt;RS2 172.18.11.12&lt;/h1&gt;

浏览器输入:http://172.18.11.111/

刷新后交替显示:

<a href="http://s1.51cto.com/wyfs02/M01/82/10/wKioL1dJu27QEblmAAA3b3YgxvY744.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M00/82/11/wKiom1dJunXyj9GyAAA0K-Vkyjs668.png" target="_blank"></a>

停掉后端一台web服务器,继续访问仍能提供web服务。

本文转自 crystaleone 51CTO博客,原文链接:http://blog.51cto.com/linsj/1784160,如需转载请自行联系原作者

继续阅读