sub vcl_recv | Magento +清漆

我想请问某人的帮助。 我浏览了很多包含Varnish教程和示例VCL文件的页面,但是我找不到与为MagentoconfigurationVarnish相关的任何内容(至less它们不能正常工作)。

我发现所有的手册在启动Varnish的时候都会抛出很多错误,而且它似乎适合旧版本。 (也没有任何magento模块PageCache&Varnish Extension不适合我,因为我认为Varnish本身并不正确)

我的问题:
1.我得到Varnish来caching前端,但是几乎打破了我的表单,支付模块,新闻订阅等等的所有function。
2.我发现改变“sub vcl_recv”中的一个单词会改变一切。单词是:return(lookup)。 这是我的“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); } } 

有人可以帮我设置这个吗?

任何帮助将不胜感激!!!

谢谢。 托马斯

看起来你的清漆是错误的configuration

基本上你应该把请求传递给后端,如果他们不是GET或者HEAD的话

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

接下来,你应该检查你的会话pipe理,并将用户传递给后端,如果有一些cookie存在。 不能说任何关于标准的Magentocookies,还没有使用它