晚礼服,清漆或鱿鱼?

我们需要一个静态图像的网页内容加速器,以便坐在我们的Apache Web前端服务器前面

我们之前的托pipe合作伙伴使用Tux取得了巨大的成功,我喜欢它是我们正在使用的Red Hat Linux的一部分,但是它的最新更新是在2006年,而且未来发展的可能性很小。 我们的ISPbuild议我们使用反向caching代理angular色的Squid。

Tux和Squid之间有什么想法? 兼容性,可靠性和未来的支持对我们来说与性能一样重要。

另外,我在这里阅读其他线索关于清漆; 任何人都可以在高stream量的环境中获得与Squid和Tux相比的真实世界的光油经验?

干杯

伊恩

更新:我们正在testing鱿鱼。 使用ab来拉同一个图像10,000次,并发度为100,Apache本身和Squid / Apache都非常快速地通过请求。 但是,Squid只向Apache提出了一个请求,然后从RAM中提供了所有这些请求,而Apache只是为了提供这些图像而需要分配大量的工作人员。 看起来Squid会很好的解放Apache的工作人员来处理dynamic页面。

根据我的经验,清漆比鱿鱼快得多,但同样重要的是它比鱿鱼要less得多。 清漆使您能够访问非常详细的日志,这些日志在debugging问题时非常有用。 它的configuration语言也简单得多,鱿鱼更强大。

@Daniel,@MKUltra,用cookies来详细说明Varnish所提出的问题,但实际上并没有。 如果它返回一个cookie,这是完全正常的。 Cookie主要是用来区分不同的用户偏好,所以我不认为有人想要caching这些(特别是如果你包括一些秘密信息,如会话ID或密码!)。

如果你的服务器发送cookies和你的.js和图像,这是你的后端,而不是在Varnish方面的问题。 正如@Daniel(链接提供)所引用的,无论如何,您可以强制caching这些文件,这要归功于在Varnish中集成了非常酷的语言/ DSL。

如果你想要推动静态图像和很多,你可能要先看看一些基本知识。

你的应用程序应该确保所有正确的头文件都被传递,例如Cache-Control和Expires。 这应该导致客户浏览器在本地caching这些图像,并减less您的请求数量。

使用CDN(如果它在您的预算中),这会使图像更接近您的客户(通常),并为他们带来更好的用户体验。 为了使CDN成为有效的投资,您需要再次确保所有必要的caching标题都已正确设置,正如我在前一段中所做的那样。

毕竟,如果你仍然要使用反向代理,我build议在代理模式下使用nginx,通过varnish和squid。 是的,清漆速度很快,和nginx一样快,但是你想要做的事情真的很简单,当你想要做复杂的caching和ESI时,清漆就变成了它自己的。 所以保持简单,愚蠢。 nginx确实会很好地完成你的工作。

我没有Tux的经验,所以我不能评论对不起。

最近,我在一个6岁的低功耗networking服务器(运行Fedora Core 2)上设置了nginx作为Apache前面的反向代理,这个服务器处于轻度的DDoS攻击(10K /秒)。 页面加载速度很快(<100ms),系统负载保持在20%左右的CPU利用率,内存消耗很less。 袭击持续了一个星期,游客没有看到任何不良影响。

不错,每分钟点击超过五十万次。 只要确保login到/ dev / null。

我们在http://www.mangahigh.com上使用了Varnish,并且已经能够从大约100个并发的预清漆到超过560个同时的后清漆(此时服务器负载保持在0,所以有足够的空间来增长!)。; 文件清漆可能会更好,但一旦习惯了它,它是相当灵活的。

清漆比Squid要快很多(从来没有使用Squid,我不能肯定) – 和http://users.linpro.no/ingvar/varnish/stats-2009-05-19显示Twitter,; Wikia,Hulu,perezhilton.com以及其他一些大牌也在使用它。

Squid和Nginx都是专门为此devise的。 nginx特别容易configuration服务器群,也可以是FastCGI的前端。

我只使用鱿鱼,不能比较。 我们使用鱿鱼在美国的服务器上caching整个站点(所有数据都从德国的一台机器上获取)。 这很容易build立和运作良好。 我发现文档是缺乏的,除非你已经知道要找什么。

有趣的是,没有人提到Apache Traffic Server(以前称为Yahoo! Traffic Server) http://trafficserver.apache.org/

请看看它,它的作品非常漂亮。

既然你已经有apache服务静态和dynamic的内容,我会build议你去与清漆。

通过这种方式,您可以使用您的apache传递静态内容并使用varnish为您caching。 清漆是非常灵活的,给你caching和负载平衡function,以最好的方式发展你的网站。

我们即将在IIS 6安装前推出清漆2.01服务器。 我们唯一的警告是我们的SSL(因为清漆无法处理SSL)。 所以我们也安装了Nginx来处理这些请求。

在我们所有的testing中,我们都看到网站可以处理的stream量增加了66%。

我唯一的抱怨是,清漆不能很好地处理cookies,而且文档还是有点分散的。

没有人提到Squid遵循HTTP规范的信(或者至less他们尝试),而清漆没有。 在我看来,这意味着Varnish更适合caching单个网站的内容(通过广泛调整Varnish),Squid更适合caching许多网站的内容(每个网站都必须根据规范使其内容“可caching”)。