Varnish apenas recursos de cache da sessão única

4

Atualmente, eu configuro o verniz para armazenar em cache os itens de um usuário, mas quando os segundos usuários entram em verniz, buscam outro material do Apache.

Como posso fazer cache de recursos estáticos por trás do magento (css, js, imagem pdf, etc.) acessível a partir de vários usuários?

Em vcl_recv, configurei:

   if (req.url ~ "\.(png|gif|jpg|swf|css|js)$") {
        unset req.http.Https;
        unset req.http.Cookie;
        return (lookup);
    }

Em vcl_fetch:

if (beresp.status == 200 || beresp.status == 301 || beresp.status == 404) {
if (beresp.http.Content-Type ~ "text/html" || beresp.http.Content-Type ~ "text/xml") 
{
    # do something
} else {
    unset beresp.http.expires;
    unset beresp.http.set-cookie;
    set beresp.ttl = 300h;
}

Eu suspeito que isso tenha algo a ver com vcl_hash que armazena o cache com algum tipo de impressão digital do cliente.

Existe uma maneira de manipular a maneira como ele hash apenas para determinados tipos de recursos?

EDIT 1: Configuração completa: link

    
por Rianto Wahyudi 29.02.2012 / 23:11

3 respostas

0

Eu descobri o caminho para resolver isso.

O verniz armazena uma página em cache diferente para cada usuário-agente específico. Eu encontrei a seguinte técnica para normalizar o agente do usuário ( link )

Acabei de colocar tudo em uma cesta e vejo um grande aumento no número de acessos.

Em vcl_recv:

if (req.url ~ "\.(png|gif|jpg|swf|css|js)$") {
     set req.http.user-agent = "Mozilla";
     unset req.http.Https;
     unset req.http.cookie;
     return (lookup);
}
    
por 05.03.2012 / 22:56
1

Como observado nos comentários, comente a função vcl_hash (desde que você não precise dela para mais nada) e esperamos que você veja melhorias.

HTH!

    
por 02.03.2012 / 13:45
0

O Varnish vai homenagear os cabeçalhos do Vary no backend. A menos que o back-end envie Vary: User-Agent, não há motivo para normalizar o cabeçalho do cliente do User-Agent.

    
por 05.06.2013 / 11:48