如何为Symfony2网站正确设置清漆?
我有一个网站(带有ESI),它使用Symfony2反向代理进行缓存。平均响应约为100ms。我试图在服务器上安装Varnish来尝试一下。我一步一步地按照Symfony食谱的指南,删除了文件夹中的所有内容,但是当我尝试时仍然创建了文件夹。所以我想我可以尝试从中注释掉。这效果很好。 不再被创建,通过varnishstat,Varnish似乎正在工作:cache
http_cache
$kernel = new AppCache($kernel);
app.php
http_cache
12951 0.00 0.08 cache_hitpass - Cache hits for pass
1153 0.00 0.01 cache_miss - Cache misses
这是大约14000个请求中的一个,所以我认为一切都会好起来的。但是在回声之后,我发现响应提高到大约2秒。
Apache在端口9000上运行,在8080上运行Varnish。所以我使用.echoping -n 10 -h http://servername/ X.X.X.X:8080
我不知道可能出了什么问题。将清漆与 Symfony2 配合使用是否需要任何其他设置?还是我只是做错了什么?
根据请求,这是我的 default.vcl
,其中包含到目前为止我所做的修改。
我发现Varnish的默认配置存在2个问题:
- 它不会使用cookie缓存请求(并且我的应用程序中的每个人都分配了会话)
- 它忽略标头
Cache-Control: no-cache
因此,我在配置中添加了这些情况的条件,现在它的表现相当不错(从S2反向代理的~160增加到约175 req / s - 但老实说,我期望更多)。我只是不知道如何检查它是否一切正常,所以欢迎任何输入。
大多数页面的缓存因 cookie 而异,为 1200。常见的ESI包含不因cookie而异,相当低(文章,文章列表)。用户配置文件页面根本没有缓存(),我真的不确定这些页面上的ESI是否被Varnish缓存。只有受 Cookie 影响的 ESI 是包含用户特定信息的标题(在 100% 的页面上)。s-maxage
s-maxage
no-cache
这篇文章中的所有内容都是Varnish 3.X特定的(我个人使用的是3.0.2)。
另外,经过几周的深入研究,我真的不知道我在做什么了,所以如果你在配置中发现一些奇怪的东西,请告诉我。