毛伟,什么都略懂一点,生活就多彩一些
squid是缓存服务器科班出生
varnish是觉得squid性能不行,纯内存缓存服务器方案
nginx cache是属于不务正业,得益于nginx强大的性能
深蓝加菲,其实我是个攻城狮
SQUID 是功能最全面的,但是架构太老,性能不咋的
Varnish 是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图片一般是挺好的
Nginx 本来是反向代理/web服务器,用了插件可以做做这个副业,但是本身不支持特性挺多
ATS 目前是一个不错的选择
BTW, 这个可以看看
下面的表格来自《Apache Traffic Server HTTP Proxy Server on the Edge》
下面的图片来自 INFOQ 的演示,记在笔记里一下子找不到来源,有知道的筒子提醒一下
1. Squid功能全而大,适合于各种静态的文件缓存,国内的top2CDN厂商是基于拿squid做的商业改造,但受限于仅支持单进程(虽然squid3.2也开始支持SMP了:
http://wiki.squid-cache.org/Features/SmpScale),因此一般会在前端挂一个HAProxy或nginx做负载均衡跑多个实例。
2.Varnish由于是内存cache,所以对小文件如css,js,小图片啥的支持很棒,sina的就是用的varnish,后端的持久化缓存可能采用的是squid或ats
3.nginx的代理功能只是它的一个模块功能,功能相对前两者目前还完全无法替代,但未来充满期待。
4.还有apache trafficserver,专业的代理,相对squid,这货支持多cpu,国内阿里的,youku,sina等厂商都在用,感兴趣可以去 Apache Traffic Server 看看
varnish 是纯内存实现说法不准确
squid 越俎代庖自己实现了一套内存页/磁盘页的管理系统,但这个虚拟内存swap其实linux内核已经可以做得很好,squid的多此一举反而影响了性能
而varnish的内存管理完全交给内核,当缓存内容超过内存阈值时,内核会自动将一部分缓存存入swap中让出内存。以挪威一家报社的经验,1台varnish可以抵6台squid的性能。
nginx cache如知友所说更适合缓存纯文本体积较小的内容,不过如果对nginx框架理解够深,在其上搭建一个山寨varnish不是难事。
mysqlops,数据库领域专心吃草、挤奶和耕地的牛,技…
varnish不懂,也就不google了,请LZ自己google下
quid 可以用于缓存更多更大的内容,属于专业用语缓存的功能,比如尤其适合缓存图片、文档等;
nginx Cache是为了提供访问最频繁资源的缓存而已,适合缓存少量页面资源,主业是提供Web 服务与代理的作用,若是Cache内容过多容易造成性能瓶颈与负载过大.
宋兴茂,python IT
squid、ATS 支持正向代理缓存,而这方面varnish、nginx cache做不到
淘宝使用tengine+squid的搭配做cdn系统,存储系统自己在搞,用过一段traffic server后来被砍掉了,说是因为政治原因。 varnish属于少数人的玩具。nginx的cache功能不是很强因为不是专业做cache的,但是插件比谁都多,扩展性也好。traffic server使用的公司还是比较多的。如果要选的话得看场景和能力。
伍鹰,教育行业 开发
varnish用来做网站和小文件的缓存,相当给力的,做图片cache之类的合适 [水货DBA]