Você precisa remover o primeiro nível de URL e passar as solicitações para o respectivo back-end usando set req.backend_hint
em vez de set req.backend
, assim:
backend default {
.host = "127.0.0.1";
.port = "80";
}
backend nagios {
.host = "10.8.1.14";
.port = "80";
}
backend grafana {
.host = "10.8.3.88";
.port = "80";
}
sub vcl_recv {
if (req.url ~ "^/grafana") {
unset req.http.proxy;
set req.backend_hint = grafana;
set req.url = regsub(req.url, "^/grafana", "/");
return (pass);
} elsif (req.url ~ "^/nagios") {
unset req.http.proxy;
set req.backend_hint = nagios;
set req.url = regsub(req.url, "^/nagios", "/");
return (pass);
} else {
set req.backend = default;
}
}
Essencialmente, isso significa que todos os URLs em /nagios
serão entregues a partir da raiz ( /
) de nagios
backend e todos os URLs em /grafana
serão entregues a partir da raiz ( /
) de grafana
backend .