Varnish

来源:互联网 发布:ios编程用什么语言 编辑:程序博客网 时间:2024/04/28 04:34

Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (vg.no) 使用3台Varnish代替了原来的12台squid,性能比以前更好。

  Varnish的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是Varnish cache设计架构。

  Varnish可以在FreeBSD 6.0和Linux 2.6内核上运行。


一、Varnish 安装与启动

什么是Varnish:
Varnish定义为一种网站加速的软件(其实就是反向代理),可以把整个网页内容缓存到内存(或文件)中,并设置不同类型的页面缓存不同时间(TTL),同时提供缓存的更新(purge)。

Varnish安装:
#wget http://repo.varnish-cache.org/source/varnish-3.0.1.tar.gz
#tar zxvf varnish-3.0.1.tar.gz
#cd varnish-3.0.1
#./configure –prefix=/usr/local/varnish
#make && make install

如果在安装时候出现:
configure: error: Package requirements (libpcre) were not met:

No package ‘libpcre’ found

两种原因一种是你没有安装libpcre,另外就是你安装了但是没有找到。
第一种情况:
#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
#tar zxvf pcre-8.30.tar.gz
#cd pcre-8.30
#./configure
#make && make install

第二种情况:
先执行:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 命令。然后在进行安装varnish。

最简单的配置 与 启动:
#vim /usr/local/varnish/etc/varnish/default.vcl
找到一下内容:
# backend default {
# .host = “192.168.0.xx”;
# .port = “8080″;
# }

去掉上面的#号,保存退出vim(ZZ)

/usr/local/varnish/sbin/varnishd -f /usr/local/varnish/etc/varnish/my.vcl -s malloc,1G -T 127.0.0.1:2100 -a 0.0.0.0:8080
-s malloc,1G

这个 –s 选项用来确定varnish使用的存储类型和存储容量,我使用的是malloc类型(malloc是一个C函数,用于分配内存空间), 1G 定义多少内存被malloced,1G = 1gigabyte。
-T

Varnish有一个基于文本的管理接口,启动它的话可以在不停止varnish的情况下来管理varnish。您可以指定管理软件监听哪个接口。当然您不能让全世界的人都能访问您的varnish管理接口,因为他们可以很轻松的通过访问varnish管理接口来获得您的root访问权限。我推荐只让它监听本机端口。如果您的系统里有您不完全信任的用户,您可以通过防火墙规则来限制他访问varnish的管理端口。
-a
这一句的意思是制定varnish监听所有IP发给8080端口的http请求,如果在生产环境下,您应该让varnish监听80,这也是默认的。
-f
指定varnish配置文件

http://ericye.in/?p=79


Varnish官方网站:http://www.varnish-cache.org/

另有一份PDF文档,说明Varnish原理的:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2163384

我测试了一下,在同等配置环境下,Varnish的性能确实要超过Squid,稳定性也不错,值得继续去深入研究。