Varnish как установить разные TTL для ESI и как проверить их

У меня на странице есть раздел ESI. Мне нужен другой TTL для ESI, чем для всей страницы. У меня два вопроса

  1. Где я могу указать конфигурацию TTL для различных ESI на странице?

  2. Как я могу проверить попадание или пропадание лакового кеша для каждого ESI?

Пожалуйста, поделитесь своими впечатлениями.


person Charanjeet Kaur    schedule 11.02.2014    source источник


Ответы (1)


  1. # P1 #
    sub vcl_fetch {
      if (req.url ~ "^/includes/"){
        set beresp.ttl = 120 s;
      } else {
        set beresp.ttl = 24 h;
      }
    }
    
  2. Вы можете запустить varnishlog на сервере и восстановить то, что сделал лак. В противном случае проверьте access.log на целевом сервере.

person Boris Burgstaller    schedule 12.02.2014
comment
Привет, Борис, спасибо за ответ. Я использую тот же код, что и вы. однако даже после истечения срока действия ttl страница не обновляется из серверной части! - person Charanjeet Kaur; 14.02.2014
comment
Может ли ответ ESI содержать заголовок, который будет устанавливать TTL для запроса esi? Или можно установить TTL в теге ‹esi: include›? - person Wouter; 31.03.2014
comment
Ответ ESI может устанавливать заголовок, и вы можете прочитать этот заголовок в beresp.http. Переменная. После этого вы можете установить ttl, если хотите. - person Boris Burgstaller; 09.04.2014