Configura o TTL padrão no Varnish 4.0?

5

Eu sou novo no Varnish, e estou executando v4.0 no Debian Wheezy.

Gostaria de definir um TTL padrão em meu cache de 4 semanas (conteúdo muito estático).

A partir da leitura dos documentos, acho que a resposta é definir uma opção default_ttl em algum lugar no meu arquivo VCL. Eu tenho pesquisado os documentos , mas só posso encontre uma referência para ela.

Encontrei esta questão mas acho que a resposta deve estar desatualizada, porque não funciona para mim.

Alguém poderia esclarecer como fazer isso no Varnish 4.0?

UPDATE: Aqui está o meu arquivo de configuração (o padrão que vem com o Varnish 4.0, exceto que eu apontei o backend para localhost):

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

sub vcl_backend_fetch {
    set obj.ttl = 4w;
}

sub vcl_recv {
    # Happens before we check if we have this in cache already.
    #
    # Typically you clean up the request here, removing cookies you don't need,
    # rewriting the request, etc.
}

sub vcl_backend_response {
    # Happens after we have read the response headers from the backend.
    #
    # Here you clean the response headers, removing silly Set-Cookie headers
    # and other mistakes your backend does.
}

sub vcl_deliver {
    # Happens when we have all the pieces we need, and are about to send the
    # response to the client.
    #
    # You can do accounting or modifying the final object here.
}
    
por Richard 07.04.2015 / 12:59

2 respostas

2

default_ttl é um parâmetro de tempo de execução . Você pode configurá-lo quando iniciar varnishd .

default_ttl

Units: seconds Default: 120.000 Minimum: 0.000 Flags: The TTL assigned to objects if neither the backend nor the VCL code assigns one.

Você pode definir esse parâmetro de duas maneiras diferentes. Qualquer maneira que você escolher fará exatamente a mesma coisa.

Você pode usar o atalho -t

-t ttl Specifies a hard minimum time to live for cached documents. This is a shortcut for specifying the default_ttl run-time parameter.

ou , você pode usar o -p param=value

Então, por exemplo, você poderia começar o verniz assim:

Usando o atalho: varnishd -a 127.0.0.1:8081 -T 127.0.0.1 -t 2419200

Usando um formulário mais longo: varnishd -a 127.0.0.1:8081 -T 127.0.0.1 -p default_ttl=2419200

O número 2419200 é de 4 semanas em segundos.

    
por 24.08.2015 / 19:28
1

A resposta aceita é uma maneira de alcançar o objetivo. No entanto, na verdade, você pode definir perfeitamente o TTL padrão no arquivo /etc/varnish/default.vcl da seguinte forma:

sub vcl_backend_response {
 set beresp.ttl = 4w;
}
    
por 03.09.2017 / 02:50

Tags