Reverse-Proxy
子 vcl_recv |Magento + 清漆
我想請人幫忙。我瀏覽了很多包含 Varnish 教程和範例 VCL 文件的頁面,但我找不到任何與為 Magento 配置 Varnish 相關的內容(至少它們不能正常工作)。
我發現的所有手冊在 Varnish 啟動期間都引發了很多錯誤,而且似乎適合舊版本。(此外,沒有一個 magento 模組 PageCache 和 Varnish Extension 對我不起作用,因為我認為 Varnish 本身不能正常工作)
我的問題:
我讓 Varnish 記憶體前端,但它破壞了我的表單、支付模組、時事通訊訂閱等的幾乎所有功能。
我發現在“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); } }
有人可以幫我設置嗎?
任何幫助將不勝感激!!!
謝謝你。托馬斯
看起來你的 Varnish 配置錯誤
基本上你應該將請求傳遞給後端,如果它們不是 GET 或 HEAD
if (req.request != "GET" && req.request != "HEAD") { return (pass); }
接下來,您應該檢查您的會話管理並將使用者傳遞到後端(如果存在一些 cookie)。不能說任何關於標準 Magento cookie 的事情,還沒有使用它