Cache de verniz - TTL padrão?

21

Descobri que posso definir o TTL em verniz da seguinte forma no meu arquivo VCL:

sub vcl_fetch {
    # 1 minute
    set obj.ttl = 1m;
}

Mas qual é a configuração padrão (supondo que o servidor backend não esteja configurando nenhum cabeçalho de controle de cache)?

    
por Ade 15.05.2012 / 13:02

2 respostas

23

Isso está no modelo padrão:

sub vcl_fetch {
    if (beresp.ttl <= 0s ||
        beresp.http.Set-Cookie ||
        beresp.http.Vary == "*") {
                /*
                 * Mark as "Hit-For-Pass" for the next 2 minutes
                 */
                set beresp.ttl = 120 s;
                return (hit_for_pass);
    }
    return (deliver);
}

Então, 120 segundos.

    
por 15.05.2012 / 14:00
31

O TTL padrão pode ser passado pelo comando varnishd por meio do switch de linha de comando -t e provavelmente é originado de um arquivo de propriedades em seu sistema de arquivos. No sistema CentOS, estou olhando para isso, é definido usando DEFAULT_TTL de /etc/sysconfig/varnish .

Você pode ver a configuração ao vivo usando o varnishadm,

varnishadm param.show default_ttl

Na verdade, a lógica padrão da VCL está relacionada a objetos não-armazenáveis em cache.

  sub vcl_fetch {
      if (beresp.ttl <= 0s ||
          beresp.http.Set-Cookie ||
          beresp.http.Vary == "*") {
                  /*
                   * Mark as "Hit-For-Pass" for the next 2 minutes
                   */
                  set beresp.ttl = 120 s;
                  return (hit_for_pass);
      }
      return (deliver);
  }

significa que "se o objeto não puder ser armazenado em cache - passe as solicitações do cliente para esse objeto para backend direto e simultaneamente por 2 minutos, não as coloque em fila"

Leia mais em link

    
por 03.01.2013 / 14:47