Php 清漆缓存不包括ESI
我在获取最简单的清漆缓存时遇到问题 ESI测试开始工作。Php 清漆缓存不包括ESI,php,include,varnish,edge-side-includes,Php,Include,Varnish,Edge Side Includes,我在获取最简单的清漆缓存时遇到问题 ESI测试开始工作。 试了又试,我想我在这里问 基本上,它只是不包括ESI文件。它刚刚回来 HTML不做它的包含 这是我的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
试了又试,我想我在这里问 基本上,它只是不包括ESI文件。它刚刚回来 HTML不做它的包含 这是我的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>
时间2是:此时此刻。
esi的php包括
3) esi_1.php
<?php
echo "Time 2: ".time();
?>
我尝试了上述vcl规则的多种变体。一切都不管用。只是看不出我错在哪里 非常感谢任何建议/帮助 多谢各位 给定最新的错误 某些版本的清漆似乎不能很好地处理gzip内容。您是否将PHP设置为执行gzip压缩?您是否将托管PHP的web服务器软件设置为执行gzip压缩 清漆也可能会被成形不良的内容物堵塞,尽管在这里似乎不太可能
不幸的是,我现在没有主意了。问题是清漆和mod_deflate在这个时候不能很好地协同工作 删除deflate.conf和deflate.load修复了该问题
干杯。尝试使用清漆3.0 beta1进行测试。其主要新功能之一是完全压缩支持(这意味着它现在也可以与ESI一起使用): 这样,您就可以避免更改apache/php压缩处理设置中的任何内容。对于Varnish 3.x 在vcl_fetch中,我必须添加:
set beresp.do_esi = true;
我使用的是varnish-2.1.5版,你说的“它不工作”是什么意思?会发生什么?包含的内容是否未得到处理?标签是否显示在浏览器中的HTML中?它会被什么都没有取代吗?是否有要检查的错误日志?运行PHP的后端服务器是否在其访问日志中获得了正确的条目?您好,是的,标记显示在浏览器接收的HTML上。它根本没有被替换。PHP中没有记录错误。PHP访问日志只得到test.PHP的命中率,而没有得到esi_1.PHP的命中率。11 VCL_错误c esi只能从VCL_调用。抱歉,这是一条错误消息。这是正确的一个:ESI_xmlerror c没有ESI处理,第一个字符没有“从Apache web服务器中删除这些,而不是从PHP中删除”。