Varnish cache

人气指数:1 页面更新时间:2016-07-14 04:11
网站介绍

  Varnish cache是一套高效能的反向网站快取服务器。Varnish目前被用在挪威的报社Verdens Gang上。Varnish cache的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。Varnish cache项目是2006年发布的个版本0.9.距今已经八年多了,此文档之前也提过Varnish cache还不稳定,那是2007年时候编写的,经过Varnish cache开发团队和网友们的辛苦耕耘,现在的Varnish cache已经很健壮。很多门户网站已经部署了Varnish cache,并且反应都很好,甚至反应比squid还稳定,且效率更高,资源占用更少。相信在反向代理,网络加速方面,Varnish cache已经有足够能力代替squid。

  Varnish cache与一般服务器软件类似,分为master进程和child进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程进行工作,主要包括一些管理线程和很多woker线程。针对文件缓存部分,Varnish的master读入存储配置,调用合适的存储类型,然后创建/读入相应大小的缓存大文件。接着,Varnish cache的master将初始化管理该存储空间的结构体。这些变量都是全局变量,在fork以后会被child进程所继承(包括文件描述符)。在Varnish的child进程主线程初始化过程中,将前面打开的存储大文件整个mmap到内存中(如果超出系统的虚拟内存,mmap失败,进程会减少原来的配置mmap大小,然后继续mmap),此时创建并初始化空闲存储结构体,挂到存储管理结构体,以待分配。

  接着,真正的工作开始,Varnish cache的某个负责接受新HTTP连接的线程开始等待用户,如果有新的HTTP连接过来,它总负责接收,然后叫醒某个等待中的线程,并把具体的处理过程交给它。Worker线程读入HTTP请求的URI,查找已有的object,如果命中则直接返回并回复用户。如果没有命中,则需要将所请求的内容,从后端服务器中取过来,存到缓存中,然后再回复。配缓存的过程是这样的:它根据所读到object的大小,创建相应大小的缓存文件。为了读写方便,程序会把每个object的大小变为接近其大小的内存页面倍数。然后从现有的空闲存储结构体中查找,找到合适的大小的空闲存储块,分配给它。如果空闲块没有用完,就把多余的内存另外组成一个空闲存储块,挂到管理结构体上。如果缓存已满,就根据LRU机制,把旧的object释放掉。

  Varnish cache有一个基于文本的管理接口,启动它的话可以在不停止varnish的情况下来管理varnish。您可以指定管理软件监听哪个接口。当然您不能让全世界的人都能访问您的varnish管理接口,因为他们可以很轻松的通过访问varnish管理接口来获得您的root访问权限。我推荐只让它监听本机端口。如果您的系统里有您不完全信任的用户,您可以通过防火墙规则来限制他访问varnish的管理端口。

  联系方式

  电子邮箱:u@varnish-cache.org。

免责声明:
此页是<Varnish cache>的介绍页面,并非官方站点,我们收集于网络只为广大网民快速查询提供帮助。
如涉及内容、版权等问题,请在30日内联系,我们将在第一时间删除内容!点此纠错或删除此信息

网站资料
网站名称: Varnish cache
网站栏目: 网站简介 网站链接
网站链接: www.varnish-cache.org
收录查询: [百度收录] [360收录] [搜狗收录] [必应收录] [谷歌收录]
网页版本: Mip版 手机版 电脑版
本页链接: https://wang080816.honpu.com/