Zend framework 如何在Zend Framework 1.11项目中实现Varnish

Zend framework 如何在Zend Framework 1.11项目中实现Varnish,zend-framework,varnish,esi,Zend Framework,Varnish,Esi,我对Varnish了解不多,但据我所知,我需要在视图中包含ESI标记,对吗 你们中有人对实现这样的体系结构有什么反馈吗 我已经找到一些视图助手来设置ESI标记,但我不确定它们是否真的有效 我想用Varnish来缓存我的主页,比如说10到30秒 使用ZF很容易做到吗?为什么要使用ESI 在AJAX兴起之前,ESI很有用 如今,开发人员更喜欢AJAX,因为ESI使您依赖于缓存引擎(没有缓存,您的站点将无法工作) 您不需要ESI来使用清漆;您需要Varnish(或任何符合ESI的缓存系统)才能使用ES

我对Varnish了解不多,但据我所知,我需要在视图中包含ESI标记,对吗

你们中有人对实现这样的体系结构有什么反馈吗

我已经找到一些视图助手来设置ESI标记,但我不确定它们是否真的有效

我想用Varnish来缓存我的主页,比如说10到30秒


使用ZF很容易做到吗?

为什么要使用ESI

在AJAX兴起之前,ESI很有用

如今,开发人员更喜欢AJAX,因为ESI使您依赖于缓存引擎(没有缓存,您的站点将无法工作)

您不需要ESI来使用清漆;您需要Varnish(或任何符合ESI的缓存系统)才能使用ESI

只有当您需要将不同的缓存TTL混合到单个页面中时,才需要ESI或AJAX


如果您想将整个主页缓存为单个对象,只需在web服务器前运行Varnish,并且不要对PHP代码进行任何更改,只需使用一些VCL设置Varnish即可缓存您的主页。

谢谢您的回答,我想我需要使用ESI激活Varnish,但我得到了,谢谢。最后,但并非最不重要的一点,它如何与会话一起工作?如果用户没有访问php服务器,而是访问varnish,那么我的会话将如何工作?您应该在这个主题上创建另一个问题,但基本上,会话通常使用cookies进行管理,因此不应该缓存。问自己一个问题:会话有什么用?是否应该缓存基于会话数据(=个性化)的请求?我知道这一点,但我的网站是一个协作网站,因此到处都使用cookie/会话,这是否意味着我不能使用Varnish?本质上,大规模动态网站不容易缓存。您必须使用Ajax或ESI将通用(可缓存)和特定(不可缓存)内容分离到单独的请求中。但是,您不能真正缓存随时更改的内容。也就是说,一旦您能够告诉Varnish可以缓存哪些内容,您还可以要求Varnish删除这些请求的cookie。然后,您就可以安全地缓存动态(非特定)内容,而无需会话共享(这是HTTP缓存的最大风险)。