英文原文:
The Pitfalls of Web Caches
我们尝试过很多工具来提高性能,例如 Profilers,各种 web 服务器,APC,xcache,memcache,redis等等。但是没有哪个技术能像 Varnish 那样带来如此大的性能提高。我们使用 Varnish 来解决大大小小的问题。在绝大多数情况下,它能很好的工作,为我们节约了大量的金钱。但这不意味着它就没有问题。这篇文章写的就是使用 Varnish 这类技术的一些注意点。
性能问题
当你启用缓存的时候,请记住你并没有“解决”任何问题。页面装载变快是因为你跳过了复杂的页面渲染过程,但是假如你的缓存没有该页面,那么整个装载还是会 一样缓慢。当你将有 session 的请求传到后端服务器的时候,响应就会变的很慢。所以,使用缓存来减少装载时间,但也必须解决底层的性能问题。
重写
我们使用了很多 URL 重写的技术。重写可以规范 URL 形式,没有人想要看到 wiki/index.php?title=Foo 这样的地址。不幸的是,URL 重写会让逻辑变的复杂,它会将请求的 URL 作为累加器。重写也让测试变的困难,因为它要建立在缓存服务器之上。
如果可以选择的话,请不要将重写构建于缓存服务器上,它非常难以调试,并且非常脆弱。尽可能的使用重定向,虽然会慢一点点。
复杂的逻辑
重写并不是唯一把事情变复杂的技术。通过 Varnish 你很容易创建复杂的逻辑。你可以对每一个请求设置不同的条件。当你这么做的时候,你需要问问你自己是不是真的有必要。你也许会发现在缓存中实现一些逻辑虽 然更快速,但还是在应用中实现更为妥帖。请记住,缓存是很难调试的。你并不清楚你的逻辑在一个缓存周期中是否成立。
总结
我的建议是 Web 缓存很容易,但是请尽量保持简单。请尽量不要在缓存中存放业务逻辑。还有,请不要忽略程序的性能问题,缓存不能解决全部的问题。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
2KB翻译工作遵照
CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务