【发布时间】:2015-10-01 01:10:07
【问题描述】:
据我了解,varnish 的。我的新理解是 varnish 的 VCL 文件是一种特定于领域的语言,与 C 有许多相似之处。但是,我不熟悉现代 C,而且对我的穴居人学院 C 非常生疏,我不明白 varnish 的vcl 配置文件只是C 文件vcl_hash 函数有效。
具体来说,典型的vcl_hash 函数将如下所示。
sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
return (hash);
}
hash_data 函数调用看起来非常简单——我假设它会将缓存键所需的信息添加到某种数据结构中。
让我困惑的是最后的电话
return (hash);
vcl_hash 返回这里是什么? (hash) 是什么?它是一个函数吗?如果是这样,C 是如何在没有括号的情况下调用它的 (hash())——或者 varnish 在幕后做了什么聪明的事情?
【问题讨论】:
-
"vcl 配置文件只是 C 文件"...不。 "You write VCL code which Varnish will parse, translate to C code, compile and link to."
-
sub是 C 关键字吗?新标准? -
感谢两位,澄清问题以消除错误假设。
-
@Olaf
sub不是 C 关键字,它只是定义函数的 varnish 关键字。 -
@Redithion:不开玩笑!我真的在寻找 C15 标准。 ;-) - 免责声明:如果你发现讽刺,请善待它并给它一个好家。与巨魔一起喂食。
标签: varnish varnish-vcl