2016-07-12 19 views
0

Varnish Spülung ist wirklich schnell in Magento 1.8. Das Problem ist die Aktualisierung einer Seite im Cache.Varnish (Terpentin): die Seite neu laden, bevor sie in Magento

Zum Beispiel: Wenn etwas auf der Indexseite geändert wird, ich verwende diesen Befehl zu spülen:

Mage::getModel('turpentine/varnish_admin')->flushUrl("^/$"); 

Und dann dieses Skript, um die Seite in den Cache zu laden:

$header[0] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
$header[] = "Accept-Language: de,en-US;q=0.7,en;q=0.3"; 
$header[] = "Cache-Control: max-age=0"; 
$header[] = "Connection: keep-alive"; 
$header[] = "Keep-Alive: 300"; 
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$html = curl_exec($curl); 
curl_close($curl); 

Es funktioniert, aber die Indexseite mit vielen Produkten ist wirklich langsam, wenn es nicht zwischengespeichert wird. So sieht jeder Benutzer diese langsame Seite beim Neuladen.

Gibt es eine Lösung für dieses Problem? Ist es möglich, die Seite neu zu laden, bevor sie gespült wird?

Antwort

0

Sie benötigen Grace Mode (auch bekannt als abgestanden während revalidate) zu implementieren.

In Ihrem Fall wird es erlauben, Varnish abgestanden Kopie Ihrer Index-Seite zu dienen, nachdem Sie bereits die Flush-Anforderung ausgegeben haben.

Der Grace-Modus ist eine Funktion zur Reduzierung von Thread-Überfüllungen, mit der Varnish weiterhin Anfragen bearbeiten kann, wenn das Backend dies nicht kann.

... oder langsam