Varnish (Turpentine): перезагрузите страницу перед промывкой в ​​Magento

В Magento 1.8 Varnish работает очень быстро. Проблема заключается в обновлении страницы в кеше.

Например: если что-то на странице индекса изменилось, я использую эту команду для очистки:

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

А затем этот скрипт для перезагрузки страницы в кеш:

$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);

Он работает, но индексная страница с большим количеством товаров работает очень медленно, когда она не кэширована. Таким образом, каждый пользователь видит эту медленную страницу во время перезагрузки.

Есть ли решение этой проблемы? Можно ли перед сбросом перезагрузить страницу?


person BP20    schedule 12.07.2016    source источник


Ответы (1)


Вам необходимо реализовать льготный режим (также известный как устаревший при повторной валидации ).

В вашем случае это позволит Varnish обслуживать устаревшую копию вашей индексной страницы после того, как вы уже отправили запрос на очистку.

Режим Grace - это функция для уменьшения скоплений потоков, которая позволяет Varnish продолжать обслуживать запросы, когда серверная часть не может этого сделать.

... или медленно

person Danila Vershinin    schedule 12.07.2016