对于使用过squid的朋友来说,其存在相应的配置项,可忽略体积过大的对象被缓存。同样在varnish中也存在这种需求,但varnish并未提供现成的配置,需要我们手工配置VCL以实现。
原理:
对于静态文件,web服务器会在header中返回 Content-Length,标识出当前资源的体积大小(以字节计算),这也就是一些下载工具(浏览器,迅雷)在未下载完整个文件时,能显示其大小的关键所在。
知道这个原理之后,我们即可在varnish接收到后端的内容后进行适当判断,例如对超过1M的文件不缓存
if (beresp.http.Content-Length >1000000){
return (hit_for_pass);
}
但这面这个配置是无法工作的,因为beresp.http.Content-Length被varnish视为是字符串,无法和整数进行对比,那么灵活变通一下,使用正则表达式过滤即可(超过7位数字,必然是大于等于1000000字节的),正确的配置如下:
在fetch事件配置段中加入以下代码:
if (beresp.http.Content-Length && beresp.http.Content-Length ~ "[0-9]{7,}"){
return (hit_for_pass);
}
显然,varnish的这种方式灵活的配置方式,远超过squid。
下一个文章中,我会实例讲解利用varnish自带的工具,统计缓存命中最差的资源,以供网站性能优化之用,例如:
找出网站中访问量较大的404资源
找出没有正确设置缓存参数的资源
所有的这些,对网站的性能优化,对varnish的缓存命令率的提升,都有很强的理论指导价值。
分享到:
相关推荐
主要介绍了高命中率的varnish缓存配置分享,本文直接给出配置代码,需要的朋友可以参考下
深入探讨Varnish缓存命中率.docx
反过来,当从实际的 Web 服务器检索到请求对象后或者对 Web 服务器的请求失败后,将调用 vcl_fetch()。如前述,如果 Cache-Control 或 Pragma 报头被设为 no-cache,则 vcl_fetch() 也拒绝缓存。 • 在代码中,pass...
在反向代理,web加速方面,varnish已经有足够能力代替squid。挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。 2.作者:Poul-Henning Kamp是FreeBSD的内核开发者之一。
本篇文章是对Linux下Varnish缓存的配置优化进行了详细的分析介绍,需要的朋友参考下
Varnish是一款高性能、开源的反向代理服务器和缓存服务器,其开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一。Varnish采用全新的软件体系结构,和现在的硬件体系配合比较紧密。
Varnish 2.1.2 缓存负载,做反向代理缓存优于squid
本篇文章是对清空varnish的缓存(包括指定站点下的)进行了详细的分析介绍,需要的朋友参考下
主要介绍了centos 7.5 部署varnish缓存服务器功能,文中给大家介绍了varnish的简介和主要特征,需要的朋友可以参考下
Varnish purges 缓存清除 教程.docx
主要介绍了php实现监控varnish缓存服务器的状态,Varnish是一款高性能的开源HTTP加速器,可以替代Squid、Nginx等服务器,需要的朋友可以参考下
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。 本文档详细讲解了varnish的安装配置过程以及配置文件详解
linux-varnish配置
varnish+lighttpd配置
我们讨论了把缓存存放在ASP.NET的输出缓存中(内存和硬盘),以及浏览器缓存中,而大型站点的另一种常用做法是将缓存部署在反向代理服务器上,这类缓存我们通常称之为反向代理缓存,比如Squid和Varnish。这两款软件...
varnish-5.2.1.tar.gz 为varnish缓存服务器软件包下载
主要介绍了基于Centos7 部署Varnish缓存代理服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
教程名称: Varnish配置教程和学习资料合集【】HTTP加速器varnish安装部署【】varnish cache 配置使用ChinaUnix【】varnish 原理【】Varnish-vcl的配置【】varnish配置实例 资源太大,传百度网盘了,链接在附件中,...