我有一個Magento網站http://www.burdastyle.co.uk/,我正在努力,並且在更改貨幣時出現問題。貨幣選擇器應該添加一個cookie,其中包含「貨幣」鍵和所選幣種的值,例如「USD」,「AUD」等。Magento + Nginx緩存+貨幣選擇器
該網站由nginx運行,它也在使用nginx緩存。我知道這是緩存造成這種不作爲的nginx的conf的緩存塊的一部分工作是:
fastcgi_hide_header "Set-Cookie";
如果我刪除了這一行,按預期的貨幣選擇的作品,但是如果我在添加項目我購物車和其他人查看購物車時,它會顯示我剛剛添加的項目,因爲它沒有顯示該行,因此所有cookie值都會緩存並提供給所有最終用戶。
全nginx的緩存塊是:
location @fcgi_cache {
fastcgi_pass phpfpm;
#fastcgi_cache mage;
fastcgi_cache mage_bs;
fastcgi_cache_key "$mobile_request|$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri|$cookie_currency";
fastcgi_hide_header "Set-Cookie";
if ($http_cookie !~ "X-Store=1") {
add_header Set-Cookie "X-Store=1; path=/";
}
fastcgi_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
fastcgi_cache_min_uses 1;
fastcgi_cache_valid 200 202 8h;
fastcgi_cache_use_stale updating error timeout invalid_header http_500;
fastcgi_cache_bypass $cookie_EXTERNAL_NO_CACHE $cookie_CUSTOMER_AUTH;
fastcgi_no_cache $cookie_EXTERNAL_NO_CACHE $cookie_CUSTOMER_AUTH;
}
我嘗試添加 「add_header設置Cookie」 貨幣= $ {cookie_currency};路徑= /「,但它似乎fastcgi_hide_header線之後,$ cookie_currency變量被消滅了,所以這並不能工作
任何幫助,將不勝感激謝謝你在先進
我建議您使用Varnish + Turpentine作爲替代緩存,然後再打孔,這樣可以幫助您在這裏 – edmondscommerce
如果沒有正確配置Magento,Varnish將會增加更多會話粘度問題。 – Rabea
請記住,Cookie必須包含域名。嘗試包括所有信息: – alfredocambera