【问题标题】:Tux, Varnish or Squid? [closed]Tux,清漆还是鱿鱼? [关闭]
【发布时间】:2010-09-22 08:23:31
【问题描述】:

我们需要一个用于静态图像的网络内容加速器,以放置在我们的 Apache 网络前端服务器前面

我们之前的托管合作伙伴使用 Tux 取得了巨大的成功,我喜欢它是我们正在使用的 Red Hat Linux 的一部分,但它的最后一次更新是在 2006 年,未来发展的机会似乎很小。我们的 ISP 建议我们在反向缓存代理角色中使用 Squid。

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

另外,我在这里阅读了关于 Varnish 的其他帖子;与 Squid 和/或 Tux 相比,有人在高流量环境中获得过 Varnish 的实际经验吗?

干杯

伊恩

更新:我们现在正在测试 Squid。使用 ab 以 100 次并发拉取同一图像 10,000 次,Apache 自己和 Squid/Apache 都非常迅速地处理请求。但是 Squid 只向 Apache 发出了一个图像请求,然后从 RAM 中为它们提供服务,而仅 Apache 就不得不派出大量工作人员来提供图像服务。看起来 Squid 可以很好地释放 Apache 工作人员来处理动态页面。

【问题讨论】:

  • 只看这个问题的标题,听起来很搞笑。比如,“亲爱的,今晚晚餐我应该穿什么?晚礼服、清漆还是鱿鱼?”
  • “亲爱的我们今晚晚餐应该吃什么?晚礼服、清漆还是鱿鱼?”

标签: linux apache squid varnish


【解决方案1】:

Squid 和 nginx 都是专门为此设计的。 nginx 特别容易为服务器群配置,也可以作为 FastCGI 的前端。

【讨论】:

  • 与 squid 和 varnish 相比,nginx 的缓存设施是有限的。
  • Squid 是一个正向代理,它不是为反向代理而设计的。此外,nginx 专门设计为源 Web 服务器,而不是代理 - 这是后来添加的。
【解决方案2】:

我只用过鱿鱼,无法比较。我们使用 squid 在美国的服务器上缓存整个站点(所有数据都从德国的机器中提取)。它很容易设置并且运行良好。我发现文档有点缺乏,除非您已经知道要查找的内容。

【讨论】:

    【解决方案3】:

    我们即将在 IIS 6 安装之前推出 varnish 2.01 服务器。我们唯一需要注意的是我们的 SSL(因为 varnish 无法处理 SSL)。所以我们还安装了 Nginx 来处理这些请求。

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

    我唯一的抱怨是 varnish 不能很好地处理 cookie,文档仍然有点分散。

    【讨论】:

    • 你能详细说明“varnish 不能很好地处理 cookie”吗?
    • code-emitter.com/blog/2008/10/added-varnish-just-works varnish 不会缓存有 cookie 的页面。
    • 缓存通常不会缓存带有 cookie 的页面。假设是,如果您设置了一个 cookie,那么您希望根据 cookie 的内容对该请求执行不同的操作。否则,设置 cookie 毫无意义。如果您想提供缓存服务,请删除 varnish 配置中的 cookie。
    【解决方案4】:

    根据我的经验,varnish 比 squid 快得多,但同样重要的是,它不像 squid 那样是黑匣子。 Varnish 使您可以访问非常详细的日志,这些日志在调试问题时很有用。它的配置语言也比 squid 的更简单、更强大。

    【讨论】:

    • 听起来很有趣。你用清漆做什么。你能提一点什么任务吗?我对您的 cmets 的上下文感兴趣。
    • 我同意。您可以使用 VCL 配置做很多重要的事情。
    【解决方案5】:

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

    Varnish 意味着比 Squid 快很多(我从未使用过 Squid,我不能肯定地说)——http://users.linpro.no/ingvar/varnish/stats-2009-05-19 显示 Twitter、Wikia、Hulu、perezhilton.com 和许多其他大牌也在使用它。

    【讨论】:

      【解决方案6】:

      @Daniel,@MKUltra,详细说明 Varnish 对 cookie 的假设问题,实际上并没有。如果请求返回一个 cookie,则缓存请求是完全正常的。 Cookie 主要用于区分不同的用户偏好,所以我认为不会想要缓存这些(尤其是如果它们包含一些秘密信息,如会话 ID 或密码!)。

      如果您的服务器发送带有 .js 和图像的 cookie,那是您后端的问题,而不是 Varnish 的问题。正如@Daniel(提供的链接)所引用的,由于 Varnish 中集成了非常酷的语言/DSL,您无论如何都可以强制缓存这些文件......

      【讨论】:

        【解决方案7】:

        为了它的价值,我最近在一个 6 岁的低功耗网络服务器(运行 Fedora Core 2)上设置 nginx 作为 Apache 前面的反向代理,该服务器受到轻度 DDoS 攻击(10K req/秒)。页面加载速度很快(

        持续每分钟超过 50 万次点击还不错。请务必登录到 /dev/null。

        【讨论】:

          【解决方案8】:

          如果您希望推送大量静态图片,您可能需要先了解一些基础知识。

          您的应用程序应确保传递所有正确的标头,例如 Cache-Control 和 Expires。这应该会导致客户端浏览器在本地缓存这些图像并减少您的请求数。

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

          毕竟,如果您仍要使用反向代理,我建议您在代理模式下使用 nginx,而不是 Varnish 和 squid。是的 Varnish 很快,和 nginx 一样快,但是你想要做的事情真的很简单,当你想做复杂的缓存和 ESI 时,Varnish 就可以发挥作用了。所以保持简单,愚蠢。 nginx 确实会很好地完成你的工作。

          我没有使用 Tux 的经验,所以我无法对此发表评论。

          【讨论】:

            【解决方案9】:

            由于您已经让 apache 提供静态和动态内容,我建议您使用 Varnish。

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

            【讨论】:

              【解决方案10】:

              没有人提到 Squid 遵循HTTP specification 的字母(或者至少他们尝试这样做),而 Varnish 没有。在我看来,这意味着 Varnish 更适合缓存单个站点的内容(通过广泛调整 Varnish),而 Squid 更适合缓存许多站点的内容(根据spec,每个站点都必须使其内容“可缓存”) )。

              【讨论】:

              • 想详细说明“清漆不[遵循规范]”的原因吗?
              • @Andreas 基本上,您可以忽略缓存标头。当服务器说你不应该缓存时,你可以缓存,反之亦然。这一切都是完全可编程的。 IIRC Squid 没有那么灵活,即。您需要尝试使其不符合规范。
              • 所以换个说法:“清漆遵循规范,除非你告诉它不要”。对吗?
              • IIRC 一开始的规格并不是 100%。我没有什么可以支持的......自从我上次使用它已经有一段时间了。
              【解决方案11】:

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

              请看一下,效果很好。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-04-17
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-12-07
                • 2016-08-03
                • 1970-01-01
                相关资源
                最近更新 更多