代码之家  ›  专栏  ›  技术社区  ›  Polsonby

燕尾服,清漆还是鱿鱼?

  •  41
  • Polsonby  · 技术社区  · 17 年前

    我们需要一个web内容加速器,让静态图像位于apacheweb前端服务器前面

    我们以前的托管合作伙伴使用tux非常成功,我喜欢它是我们正在使用的red hat linux的一部分,但它的最后一次更新是在2006年,而且未来的开发机会似乎很小。我们的isp建议在反向缓存代理角色中使用squid。

    你觉得燕尾服和鱿鱼有什么关系吗?兼容性、可靠性和未来的支持对我们来说和性能一样重要。

    另外,我在这里读到了关于Varnish的其他文章;有没有人对Varnish有过真实的体验,与在高流量环境中获得的Squid和/或Tux相比?

    干杯

    伊恩

    更新:我们正在测试鱿鱼。使用ab以100的并发度拉取同一个映像10000次,apache本身和squid/apache都很快地完成了请求。但是squid只向apache请求一个映像,然后从ram向它们提供所有的映像,而apache则必须为大量的工人提供映像。看起来squid可以很好地释放apache工作人员来处理动态页面。

    11 回复  |  直到 17 年前
        1
  •  36
  •   scottynomad    17 年前

    以我的经验,清漆比鱿鱼快得多,但同样重要的是,它比鱿鱼更像是一个黑匣子。Varnish允许您访问非常详细的日志,这些日志在调试问题时非常有用。它的配置语言也比squid的简单得多,功能也更强大。

        2
  •  15
  •   InvertedAcceleration    11 年前

    @丹尼尔,@mkultra,详细解释一下Varnish在饼干上的问题,其实没有。完全正常 不 如果请求返回cookie,则缓存该请求。cookies主要是用来区分不同的用户偏好,所以我不认为有人想缓存这些(特别是如果你的cookies包含一些秘密信息,比如会话id或密码!).

    如果服务器发送带有.js和图像的cookies,这是后端的问题,而不是Varnish的问题。正如@daniel(link provided)所引用的,由于varnish中集成了非常酷的语言/dsl,您可以强制缓存这些文件……

        3
  •  12
  •   flungabunga    16 年前

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

    例如,应用程序应确保传递所有正确的头、缓存控制和过期。这将导致客户端浏览器在本地缓存这些图像,并减少您的请求计数。

    使用CDN(如果在您的预算中),这会使图像更接近您的客户(通常),并为他们带来更好的用户体验。要使cdn成为一项富有成效的投资,您需要再次确保正确设置所有必需的缓存头, 根据我在上一段中提出的观点。

    毕竟,如果您仍然要使用反向代理,我建议在代理模式下使用nginx,而不是varnish和squid。是的,varnish很快,而且和nginx一样快,但是你想要做的是非常简单的,varnish在你想要做复杂的缓存和esi的时候就有了自己的功能。所以保持简单,愚蠢。nginx确实会很好地完成你的工作。

    我没有穿燕尾服的经验,所以我不能对此发表评论。

        4
  •  6
  •   tylerl    16 年前

    值得一提的是,我最近在一个6岁的低功耗web服务器(运行Fedora Core 2)上,将nginx设置为一个反向代理,该服务器受到轻微的DDoS攻击(10k req/sec)。页面加载很快(<100ms),系统负载很低,CPU利用率约为20%,内存消耗很少。袭击持续了一个星期,参观者没有看到任何不良影响。

    持续每分钟超过50万次点击也不错。请确保登录到/dev/null。

        5
  •  4
  •   Richy B.    16 年前

    我们用清漆 http://www.mangahigh.com 并且已经能够从大约100个并发的pre-varnish扩展到超过560个并发的post-varnish(此时服务器负载保持在0,所以有足够的空间增长!).varnish的文档可能更好,但一旦您习惯了它,它就非常灵活。

    清漆要比鱿鱼快得多(我不能肯定,我从来没有用过鱿鱼)。 http://users.linpro.no/ingvar/varnish/stats-2009-05-19 显示twitter,wikia,hulu,perezhilton.com和许多其他大牌也在使用它。

        6
  •  4
  •   Abbas    12 年前

    有趣的是,没有人提到apache流量服务器(以前是yahoo!流量服务器) http://trafficserver.apache.org/

    请看一看,它很漂亮。

        7
  •  3
  •   Javier    17 年前

    squid和nginx都是专门为此而设计的。nginx特别易于为服务器场配置,而且还可以是fastcgi的前端。

        8
  •  3
  •   Lasar    17 年前

    我只吃过鱿鱼,比不上。我们使用squid将整个站点缓存在美国的服务器上(所有数据都从德国的机器中提取)。安装起来很容易,工作也很好。我发现文件有点缺乏,除非你已经知道要找什么。

        9
  •  2
  •   Rafael Sanches    14 年前

    既然已经有了apache提供静态和动态内容,我建议您使用varnish。

    通过这种方式,您可以使用apache交付静态内容,并使用varnish为您缓存它。Varnish非常灵活,为您提供缓存和负载平衡功能,以最佳方式扩展您的网站。

        10
  •  1
  •   MkUltra    17 年前

    我们将在iis 6安装之前推出varnish 2.01服务器。我们唯一需要注意的是ssl(因为varnish不能处理ssl)。所以我们也安装了nginx来处理这些请求。

    在我们所有的测试中,我们已经显示出网站可以处理的流量增加了66%。

    我唯一的不满是Varnish不能很好地处理cookies,而且文档还有些零散。

        11
  •  1
  •   laughingbovine    13 年前

    没人提到乌贼跟着 HTTP specification 信(或至少他们试图)而清漆没有。在我看来,这意味着varnish更适合缓存单个站点的内容(通过广泛地调整varnish),squid更适合缓存许多站点的内容(每个站点都必须根据 spec )

    推荐文章