在我的清漆 default.vcl 中,我有以下代码:
include "vars.vcl";
当我尝试启动清漆时,我收到此错误消息:
Message from VCC-compiler:
Cannot read file 'vars.vcl': No such file or directory
('input' Line 6 Pos 9)
include "vars.vcl";
--------##########-
Running VCC-compiler failed, exited with 2
VCL compilation failed
文件“vars.vcl”位于目录 /etc/varnish/ 中,其中还存储了 default.vcl。它是实际 vars.vcl 的符号链接。
我不知道为什么 include 不起作用,难道清漆不能使用符号链接吗? 为什么找不到文件?
您必须将参数
vcl_dir
传递给varnishd
。您可以使用以下方法进行测试:
varnishd -p vcl_dir=/path/to/vars.vcl -C -f default.vcl
正如@francisv提到的,你必须使用-p(参数)传递目录位置
vcl_dir
在 6.1.0 版本中已弃用,因此您必须使用 vcl_path
代替
varnishd -p vcl_path=/path/to/vars.vcl -C -f default.vcl
只需确保路径名称应从 / 开始,否则它将不起作用
从 Varnish 6.5 升级到 6.6 时我遇到了同样的问题。解决了
include "./vars.vcl";