我应该选择Varnish而不是nginx吗?

5
我非常喜欢nginx。
但是最近我发现,varnish可以实现智能缓存反向代理层(包括URL清除)。我有一组mongrels,它们需要很多资源,如果这个缓存层可以减轻mongrels的负载,那就太好了。
我没有找到与nginx相同的应用程序页面缓存层实现方法;当然,静态内容是可缓存的。
我应该使用Varnish吗?你有什么建议?
2个回答

5
我不知道你所说的“智能”是什么意思,但是无论如何,Nginx从0.7版本开始就具有缓存功能。有许多参数可以调整,例如:
  • 您可以为不同的返回代码设置不同的TTL
  • 当应用程序未响应时,可以返回旧内容
  • 可以限制磁盘缓存的总大小
  • 您可以定义用于生成缓存键的信息片段。
文档在这里

3
Nginx在基本缓存方面有一些不错的功能,但是如果您需要通过URL或标头匹配进行主动清除、边缘包含以便页面的不同部分具有不同的TTL和其他各种技巧,那么Varnish是更好的选择,因为它具有非常灵活的配置语言。
如果您真的想严格缓存并减轻后端负载,我建议使用Varnish,但与仅向nginx.conf添加几个指令相比,这将需要更多的工作量来设置。

此外,Varnish还允许使用边缘侧包含(Edge Side Includes),而Nginx则不支持。 - kheraud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接