我一直在关注本指南使用这个默认.vcl。但是,启动 Varnish 时出现以下错误:
* Starting HTTP accelerator [fail]
storage_malloc: max size 1024 MB.
Message from VCC-compiler:
Expected '(' got ';'
(program line 341), at
(input Line 43 Pos 22)
purge;
---------------------#
Running VCC-compiler failed, exit 1
VCL compilation failed
这意味着这里的清除有问题:
sub vcl_hit {
if (req.request == "PURGE") {
purge;
error 200 "Purged.";
}
}
我没有发现任何问题,有人可以解释一下吗?
谢谢!
答案1
您使用的代码块完全有效 - 事实上,我在 Varnish 设置中使用了几乎相同的代码块(并且我推测许多其他人也这样做)。
正如错误所暗示的,存在问题purge
。由于purge
仅在 Varnish 3.x 中引入,如果您使用的是早期版本的 Varnish(2.x),则该命令将无法识别,并且编译将失败。您可以通过运行来确定您的 Varnish 版本varnishd -V
。
如果您正在使用以前版本的 Varnish,并且无法升级,则等效命令是set obj.ttl = 0s;
。
Varnish 在其服务器上维护 Ubuntu/Debian 和 RHEL/CentOS 发行版的最新存储库下载页面。