varnish、squid、apache、nginx缓存的对比
1. Squid
一种很古老的反向代理软件,拥有传统代理、身份验证、流量管理等高级功能,但是配置太复杂。
它算是目前互联网应用得最多的反向缓存代理服务器,工作于各大古老的cdn上。
2. Varnish
是一个新兴的软件,设计简单,基于内存缓存,重启后数据将消失。
它更符合目前互联网的应用,很多公司都采用了varnish这个软件,
比如米扑科技:http://mimvp.com
3. nginx
nginx的反向代理缓存是通过一个缓存模块proxy_cache来实现的,
目前这个模块还在完善中,但是很多公司已经开始使用了。
varnish,squid,apache,nginx这几种缓存技术用什么架构cache
1、从这些功能上
varnish和squid是专业的cache服务,而apache,nginx这些都是第三方模块完成。
2、cache选择
要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid和varnish。
varnish 本身的技术上优势要高于squid,它采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高。 但是varnish不能cache到本地硬盘上的。
varnish有强大的通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存
squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境(这应该与squid早出来有关)。
3、 nginx缓存
nginx是用第三方模块ncache做的缓冲,其性能基本达到varnish,但在架构中nginx一般作为反向(静态文件现在用 nginx的很多,并发能支持到2万+)。
在静态架构中,如果前端直接面对的是cdn或者前端了4层负载的话,完全用nginx的cache就够了。
4、本人觉得如果是在apache服务上提升性能,做一些本地cache是完全可以的,但如果在系统架构中用apache做cache服务,那就有点牛头不对马尾了。
测试结果发现:
varnish > nginx > apache > squid
这个结果,或许跟大家预期的结果有点出入,因为squid做老牌文件缓存工具怎么会这么差呢,squid的命中率低,原因用Varnish作者的一句话来说明:
Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。
在1975年时,储存媒介只有两种:内存与硬盘。
但现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取;硬盘上也有自己的快取装置,
因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。
参考推荐:
使用Varnish代替Squid做网站缓存加速器的详细解决方案
用Varnish和Memcached缓存给WordPress网站提速-内存级加速
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2017-09-29 14:25:24
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!