【发布时间】:2011-04-01 04:27:13
【问题描述】:
我在获取最简单的 Varnish Cache 时遇到问题
ESI 测试有效。
在尝试和尝试之后,我想我在这里问。
基本上它不会包含 ESI 文件。刚刚回来 HTML 不做它的包含。
这是我的清漆启动命令:
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) 测试.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>
php 到 esi 包含
3) esi_1.php
<?php
echo "Time 2: ".time();
?>
我已经尝试了上述 vcl 规则的许多变体。
都行不通。只是看不出我哪里出错了?
非常感谢任何建议/帮助。
谢谢。
【问题讨论】:
-
我正在使用版本 varnish-2.1.5
-
“它不起作用”是什么意思。怎么了?包含没有得到处理吗?标签是否出现在您在浏览器中获得的 HTML 中?它会被什么都取代吗?是否有要检查的错误日志?运行 PHP 的后端服务器是否在其访问日志中获得了正确的条目?
-
嗨,是的,标签出现在浏览器收到的 HTML 上。它根本没有被替换。 PHP 中没有记录错误。 PHP 访问日志只获得对 test.php 的命中,对 esi_1.php 没有任何影响。
-
我确实在 varnishlog 中看到了这一点。 11 VCL_error c esi只能从vcl_fetch调用
-
抱歉,这是一条不正确的错误消息。这是正确的: ESI_xmlerror c No ESI processing, first char not '
标签: php include varnish edge-side-includes