sub vcl_recv | Magento + Verniz

1

Gostaria de pedir ajuda a alguém. Eu naveguei em muitas páginas contendo tutoriais de verniz e amostras de arquivos VCL, mas não consigo encontrar nada relacionado à configuração do Varnish para Magento (pelo menos eles não funcionam corretamente).

Todos os manuais que encontrei lançaram muitos erros durante o início do Varnish e parece que eles são adequados para versões antigas. (Também nenhum dos módulos magento PageCache & Extensão de verniz não funciona para mim, porque eu acho que Verniz em si não está funcionando direito)

Meu problema:
1. Eu coloco o Varnish no cache do front-end, mas ele quebra quase todos os funcionalidades dos meus formulários, módulo de pagamento, assinatura de newsletter, etc., etc.
2. Eu descobri que mudar uma palavra em "sub vcl_recv" muda tudo A palavra é: retorno (pesquisa). Este é o código do meu "sub vcl_recv":

sub vcl_recv {

if (req.http.x-forwarded-for) {
    set req.http.X-Forwarded-For =
    req.http.X-Forwarded-For + ", " + client.ip;
} else {
    set req.http.X-Forwarded-For = client.ip;        
    if(server.ip ~ a168_144_38_181){
    set req.backend = b168_144_38_181;
    }
}
if (req.url ~ "^/images") {
    unset req.http.cookie;
} 
    if (req.url ~ "^(/index.php)?/(admin|customer|checkout|add|product_compare|switch|___store|referer|contact|chat|payone|sendfriend|review|api|NOCACHE|post|robots.txt|j2tajaxcheckout|cron.php|varnish)") {
    return(pass);
}
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);
}
   if (req.request != "GET" &&
   req.request != "HEAD" &&
   req.request != "PUT" &&
   req.request != "POST" &&
   req.request != "TRACE" &&
   req.request != "OPTIONS" &&
   req.request != "DELETE") {
     /* Non-RFC2616 or CONNECT which is weird. */
     return (pipe);
}
#parse accept encoding rulesets to normalize
if (req.http.Accept-Encoding) {
    if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
      # no need of compression
      remove req.http.Accept-Encoding;
    } elsif  (req.http.Accept-Encoding ~ "gzip") {
        set req.http.Accept-Encoding = "gzip";
    } elsif (req.http.Accept-Encoding ~ "deflate") {
        set req.http.Accept-Encoding = "deflate";
} else {
# unknown algorithm
remove req.http.Accept-Encoding;

remove req.http.Cookie;
remove req.http.X-Pass;
set req.grace = 30s;    

return (lookup);
}
}

Alguém pode me ajudar a configurar isso?

Qualquer ajuda seria muito apreciada !!!

Obrigado. Thomas

    
por Thomas 07.03.2012 / 01:25

1 resposta

1

Parece que o seu verniz está mal configurado

Basicamente, você deve passar solicitações para back-end, se elas não forem GET ou HEAD

if (req.request != "GET" && req.request != "HEAD") {
return (pass);
}

Em seguida, você deve revisar o gerenciamento da sua sessão e passar o usuário ao back-end se algum cookie estiver presente. Não posso dizer nada sobre os cookies padrão do Magento, ainda não trabalhei com ele

    
por 07.03.2012 / 01:47