gpt4 book ai didi

Varnish VCL : how can I switch on req. backend_hint?

转载 作者:行者123 更新时间:2023-12-03 17:45:20 27 4
gpt4 key购买 nike

我有以下VCL:

vcl 4.0;

import std;
import directors;

backend one {
.host = "localhost";
.port = "3333";
}

backend two {
.host = "localhost";
.port = "3333";
}

sub vcl_init {
new random_director = directors.random();
random_director.add_backend(two, 10);
random_director.add_backend(one, 8);
}

sub vcl_recv {

std.log("start vcl_recv");

set req.backend_hint = random_director.backend();
if (req.backend_hint == one) {
std.log("one");
} else if (req.backend_hint == two) {
std.log("two");
} else {
std.log("neither one");
}

std.log("end vcl_recv");
}

当我运行它时,输出始终是:
start vl_recv
neither one
end vcl_recv

如何正确检查以查看选择了哪个后端?

谢谢

最佳答案

vcl_backend_fetch中,您应该可以访问bereq.backend.name
因此,移动代码,您可能会遇到类似以下内容的情况:

sub vcl_backend_fetch {
if (bereq.backend.name == "one") {
std.log("one");
} else if (bereq.backend.name == "two") {
std.log("two");
} else {
std.log("neither one");
}
}

关于 Varnish VCL : how can I switch on req. backend_hint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357690/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com