verniz redirecionar para o diretório web inicial

1

Eu tenho um proxy reverso que estou configurando como um painel de controle de escritório com alguns hosts da web por trás dele. Finalmente eu quero:

dashboard.company/nagios to go to nagios.company/

dashboard.company/grafana to go to grafana.company/

Eu configurei o seguinte VCL:

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 = grafana;
    return (pass);
} elsif (req.url ~ "^/nagios") {
    unset req.http.proxy;
    set req.backend = nagios;
    return (pass);
} else {
    set req.backend = default;
}
}

Mas quando tento acessar o link , ele passa o bit de URL "grafana" para o back-end. Eu quero que o pedido vá para o webdir do sourcehost e não para o sourcehost / grafana. Como posso fazer isso?

    
por Ethan Shrago 29.06.2017 / 00:47

1 resposta

4

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 .

    
por 29.06.2017 / 21:21