Lista de hosts em Varnish

2

Estou executando um VPS com vários sites diferentes e o Varnish na frente para armazenamento em cache. No entanto, alguns sites não devem ser armazenados em cache. Em vez de criar regras individuais para cada site, gostaria de fazer uma lista geral de "NÃO CACHE", que está vinculada a algumas regras. Possível?

A seguir, eu esbocei o que eu gostaria: uma lista de sites (sintaxe ACL) na configuração VCL que não deve ser armazenada em cache.

list cache_blacklist {
 "domain1.com";
 "domain2.com";
}

sub vcl_recv {
  if (req.http.host ~ cache_blacklist) {
    return(pass);
  }   
}

sub vcl_fetch {
  if (req.http.host ~ cache_blacklist) {
    return(hit_for_pass);
  }
}
    
por sqren 21.12.2011 / 23:58

1 resposta

1

Primeira coisa: você não precisa definir uma regra vcl_fetch se a condição depender da solicitação . Tudo será tratado em vcl_recv.

As regras de vcl_fetch são necessárias apenas quando a condição depende do servidor response .

HTTP Host está na solicitação ... sua regra vcl_fetch é realmente inútil.

Agora que você não precisa dizer "quais domínios não devem ser armazenados em cache" duas vezes, basta usar uma única condição em vcl_recv assim:

sub vcl_recv {
    if (req.http.host == "domain1.com" || 
        req.http.host == "domain2.com") {
        return(pass);
    }
}

Note que você também pode usar o regexp ... não tenho certeza sobre qual é o melhor ...

    
por 13.01.2012 / 12:20

Tags