Varnish 运行 VCC 编译器清除失败

Varnish 运行 VCC 编译器清除失败

我一直在关注本指南使用这个默认.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 发行版的最新存储库下载页面

相关内容