有人可以建议一个 VCL conf 来重定向(在 LAN 和 LAN DNS 内部)以到达多个命名主机吗?
IE http://x.ourdomain.com= Varnish 服务器的 IP = 重定向到 LAN 主机(即 10.0.5.1) http://y.ourdomain.com= Varnish 服务器的 IP = 重定向到 LAN 主机(即 10.0.5.5)等
我已经在 varnish 上呆了大约 5 个小时,我的一小部分大脑已经死亡。
答案1
sub vcl_recv {
set req.backend = default_backend;
if ( req.http.Host == "x.ourdomain.com" ) {
set req.backend = x_backend;
}
if ( req.http.Host == "y.ourdomain.com" ) {
set req.backend = y_backend;
}
}
除非你正在寻找真正的重定向, 在这种情况下:
sub vcl_recv {
if ( req.http.Host == "x.ourdomain.com" ) {
error 750 "http://10.0.5.1" + req.url;
}
if ( req.http.Host == "y.ourdomain.com" ) {
error 750 "http://10.0.5.5" + req.url;
}
}
sub vcl_error {
if ( obj.status == 750 ) {
set obj.http.Location = obj.response;
set obj.status = "302";
set obj.response = "Found";
return(deliver);
}
}