Varnish include 在同一目录中找不到文件

问题描述 投票:0回答:3

在我的清漆 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 不起作用,难道清漆不能使用符号链接吗? 为什么找不到文件?

include varnish include-path varnish-vcl
3个回答
5
投票

您必须将参数

vcl_dir
传递给
varnishd
。您可以使用以下方法进行测试:

varnishd -p vcl_dir=/path/to/vars.vcl -C -f default.vcl

2
投票

正如@francisv提到的,你必须使用-p(参数)传递目录位置

vcl_dir
在 6.1.0 版本中已弃用,因此您必须使用
vcl_path
代替

varnishd -p vcl_path=/path/to/vars.vcl -C -f default.vcl

只需确保路径名称应从 / 开始,否则它将不起作用


0
投票

从 Varnish 6.5 升级到 6.6 时我遇到了同样的问题。解决了

include "./vars.vcl";
© www.soinside.com 2019 - 2024. All rights reserved.