varnish-vcl - 清漆 VCL "Symbol not found: std.querysort"

标签 varnish-vcl varnish-4

我正在从 this handy template 复制一些 VCL 规则并在最新稳定的 Varnish4 上运行。但是 VCL 的这一部分:

vcl 4.0;

sub vcl_init {
    # ...

    # Normalize query arguments
    set req.url = std.querysort(req.url);
}
                  ^

返回此错误:

-- Logs begin at Tue 2016-03-15 10:44:31 UTC, end at Tue 2016-03-15 13:02:10 UTC. --
Mar 15 13:02:10 ip-172-31-10-46 reload-vcl[18044]: Message from VCC-compiler:
Mar 15 13:02:10 ip-172-31-10-46 reload-vcl[18044]: Symbol not found: 'std.querysort' (expected type STRING_LIST):
Mar 15 13:02:10 ip-172-31-10-46 reload-vcl[18044]: ('/etc/varnish/test.vcl' Line 55 Pos 23)
Mar 15 13:02:10 ip-172-31-10-46 reload-vcl[18044]: set req.url = std.querysort(req.url);
Mar 15 13:02:10 ip-172-31-10-46 reload-vcl[18044]: ----------------------#############----------
Mar 15 13:02:10 ip-172-31-10-46 reload-vcl[18044]: Running VCC-compiler failed, exited with 2
Mar 15 13:02:10 ip-172-31-10-46 reload-vcl[18044]: VCL compilation failed

我应该包含一个 mod 还是以某种方式定义 std

最佳答案

是的!我偶然发现了里面的答案 another answer .在脚本顶部添加 import std; 停止了错误。

vcl 4.0;
import std;

sub vcl_init {
    # ...

    # Normalize query arguments
    set req.url = std.querysort(req.url);
}

关于varnish-vcl - 清漆 VCL "Symbol not found: std.querysort",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36012266/

相关文章:

linux - 我正在 EC2 linux 上从 docker hub 运行 open varnish 镜像,如何启用 varnish 日志记录?

caching - Varnish :具有多个 IP 的后端(或使用其他东西)

Varnish 从不发送If-Not-Modified

varnish-vcl - 取决于后端健康状况的清漆 4 宽限时间

根据状态代码清空缓存项目

magento ssl + Varnish

varnish - 通过 VCL 从 Varnish 发送自定义响应

varnish - Varnish 4.0 中的 obj.ttl

caching - Varnish 4以从具有不同内容的多台服务器缓存