即使是最简单的Varnish Cache ESI测试,我也遇到了问题。
经过一次又一次的尝试,我想我会在这里问。
基本上它不会包含ESI文件。它只是返回HTML,而没有执行include。
下面是我的varnish start命令:
varnishd -f /etc/varnish/default.vcl -s malloc,128M -T 127.0.0.1:2000 -a 0.0.0.0:8080;下面是我正在测试的URL:
http://vbox.local:8080/varnish-tests/test.php我的vcl规则:
1) default.vcl
backend default {
.host = "127.0.0.1";
.port = "80";
}
sub vcl_fetch {
if (req.url ~ "test.php") {
esi; /* Do ESI processing */
set beresp.ttl = 24h;
} elseif (req.url ~ "esi_1.php") {
set beresp.ttl = 1m;
}
return(deliver);
} 我的示例测试esi代码
2) test.php
<html>
<head>
<?php echo "Time 1: ".time(); ?>
<br />
The time 2 is: <esi:include src="/varnish-tests/esi_1.php"/> at this very moment.
</body>
</html> esi的php包括
3) esi_1.php
<?php
echo "Time 2: ".time();
?>我已经尝试了上述vcl规则的许多变体。
并不是所有的都能工作。就是看不出我哪里错了?
任何建议/帮助都非常感谢。
谢谢。
发布于 2011-04-01 14:10:16
问题是,Varnish和mod_deflate目前不能很好地协同工作。
删除deflate.conf和deflate.load解决了此问题。
干杯。
发布于 2011-05-29 04:23:18
尝试使用Varnish3.0 beta1进行测试。它的主要新特性之一是完全压缩支持(这意味着它现在也可以与ESI一起使用):
https://www.varnish-software.com/blog/varnish-cache-30-beta-1-out
这样,您就可以避免更改apache/php压缩处理设置。
发布于 2011-04-01 14:09:58
鉴于最新的错误,this blog post may be relevant。
似乎某些版本的Varnish不能很好地处理gzipped压缩内容。你有没有设置PHP来执行gzip压缩?您是否已将托管PHP的web服务器软件设置为执行gzip压缩?
清漆也可能会阻塞格式不佳的内容,尽管在这里似乎不太可能...
不幸的是,我现在没有想法了。
https://stackoverflow.com/questions/5509162
复制相似问题