Varnish 缓存:Varnish 如何与其他缓存系统配合?

Varnish 缓存:Varnish 如何与其他缓存系统配合?

我正在考虑在我的论坛平台前安装 Varnish 缓存以进一步加快其速度。

它已经运行了 Percona MySQL DB、PHP 5.5.8(内置并正在运行 Opcode 缓存)和 memcached。该网站通过 CDN 运行,CDN 还会缓存一些资源。

编辑:没有集群,它是一个单一的服务器。

Varnish 是否与我当前的任何缓存层重复/冲突,或者它是否是对我现有缓存的良好补充?

谢谢。

答案1

我敢说你没有在你的网站上问正确的问题。

什么是慢,什么是快,这些都是主观的,只有在受控的环境下定义才有意义;有些事情是你无法控制的。例如,在其他条件相同的情况下,你的网站通过 LAN 连接时的响应时间会比通过移动服务提供商的连接时短。

如果您希望全面提高性能,请开始使用监控和负载测试工具分析您的应用程序及其相关层。为堆栈中的各个层设置基准,然后努力改进它们。调整应用程序和系统的性能是艺术和科学的结合(翻译:它需要时间和精力)。

正如 Michael Hampton 指出的那样,Varnish 最适合匿名用户。对于论坛,建议您研究其他改善网站性能的方法。祝您好运!

答案2

无论是好的附加功能取决于您的具体设置,这里没有足够的信息。例如,您的 CDN 已缓存了哪些资源、您的资源的到期时间是否设置正确、您的论坛的主要内容类型是什么,等等。

另外,不要指望通过在网站前面涂一层清漆就能带来巨大的改进(而且,改进程度取决于网站的具体需求),它还需要一些调整,特别是因为您的论坛很可能会设置 Cookies,这将导致 varnish 忽略默认配置中的缓存。

不应该伤害但在大多数情况下,最好的办法是简单地进行测试并尝试各种可调参数。

答案3

只有当大多数访问者都匿名的,即他们从不登录和参与。登录用户的请求无法在此级别安全地缓存,并且任何合理的网站都会设置Cache-Control: private(或者也许no-cache如果它的设计不太好)来指示这一点。

但是,您的论坛软件本身可能会对您不利。例如,SMFCache-Control: private甚至为匿名用户设置 cookie;前者会破坏缓存,需要极其复杂的操作才能解决。这是完全错误的操作,但我不认为它会很快改变。

相关内容