我正在尝试编写一些Varnish(VTC)测试,以测试我们(部分)清漆管理的OAuth后端功能。
简单清漆只是从OAuth Cookie(来自客户端),检查它对我们的OAuth后端的令牌,如果令牌无效/过期,则使用缓存数据或重定向到登录页面进行响应。
在我的测试中,我不想调用OAuth客户端。我想为测试上下文模拟它,所以我需要覆盖默认的varnish配置,如下所示:
varnish v1 -vcl {
backend default {
.host = "${s1_addr}";
.port = "${s1_port}";
.first_byte_timeout = 350s;
}
include "./includes.vcl";
} -start
此默认配置适用于实时OAuth服务器。我试图像这样覆盖OAuth配置:
backend oauth {
.host = "127.0.0.1";
.port = "8090";
}
但它没有成功。相反,它会在没有任何解释信息的情况下退出失败代码。
我找不到任何适当的文档,希望以前有人有这个问题。
谢谢。
答案 0 :(得分:0)
您还可以在清漆测试中定义服务器/后端。试试这个:
# default backend
server s1 {
rxreq
txresp -hdr "Set-Cookie: ignore=cookie; expires=Tue, 06-Dec-2016 22:00:00 GMT; Max-Age=2588826; path=/"
}
server s1 -start
varnish v1 -vcl+backend {
include "./includes.vcl";
} -start
client c1 {
txreq -url "/" -hdr "Host: www.domain.com" -hdr "Cookie: client=cookie_here"
rxresp
expect resp.status == 200
} -run