TL; DR-在MageStack上,我们使用Varnish,Redis(缓存),Redis(会话)和Eaccelerator / Zend OPCache(取决于PHP版本)
您已经了解了大部分内容。
缓存后端,会话存储,操作码缓存,全页缓存和反向代理缓存都完全不同。
您可以对所有人使用不同的技术,也可以同时使用所有这些技术(包括清漆和FPC)
缓存后端
- 文件(核心)默认
- 内存缓存(核心)
- APC(核心)
- Redis(<1.9模块,由Colin Mollenhour提供)
- MongoDB(模块由Colin Mollenhour提供)
- 红宝石(由Daniel Sloof提供)
您只能使用一个缓存后端。
与流行的看法相反,使用基于内存的缓存不会提高性能。但这将克服Magento基于文件的默认缓存中的一些致命缺陷。
在撰写此消息时,Redis是我的建议。
会话商店
- 文件(核心)默认
- 内存缓存(核心)
- Redis(<1.9模块,由Colin Mollenhour提供)
- MongoDB(模块由Colin Mollenhour提供)
您只能使用一个会话存储。
与流行的看法相反,使用基于内存的会话存储不会提高性能。
在撰写此消息时,Redis是我的建议。
操作码缓存
- 装甲运兵车
- XCache
- 加速器(PHP <5.4)
- Zend OPCache(PHP> 5.4)
实际上,您可以安装多个操作码缓存,但是不建议这样做,我也不希望看到任何好处。
我的建议在上面的括号中。
无需安装任何模块即可利用此功能。
反向代理缓存
您可以使用多个反向代理,尽管这样做很复杂并且易于缓存扩展,但它也有其优点(例如,防止在缓存刷新期间加盖标记)。
必要时使用一个(即,不是为了加快慢速站点,而是减少快速站点上的资源使用)。
为了利用反向代理,它既需要启用服务器端,也需要一个Magento模块。
该模块的原因是帮助控制缓存逻辑(即告诉缓存应缓存和不应该缓存的内容),以及管理缓存内容(即触发缓存的清除)。
除非您完全了解自己的工作,否则我不建议您这样做。设置错误的反向代理可能会破坏标头信息,可能导致会话丢失,会话共享,陈旧的内容,对加载时间/缓冲区施加其他限制,消耗额外的资源等。
全页缓存
必要时使用一个(即,不是为了加快慢速站点,而是减少快速站点上的资源使用)。
与流行的看法相反,您可以(并且应该)将FPC与反向代理缓存一起使用。两者解决不同的问题,具有不同的功能。
FPC可以利用更多的情报,因为它们可以直接访问用户会话和Magento的核心,而反向代理并不了解应用程序(它的工作方式相当愚蠢)-因此两者相互补充,而不是相互竞争。
就是 不要以为Varnish或FPC,而要以Varnish和FPC为例。