varnish и no-cache

От разработчиков поступил запрос, чтобы varnish не кешировал страницы с заголовком Cache-control: no-cache. После некоторых поисков, обнаружил, что версия 4.0, которую мы используем, должна уметь это из коробки, как видно из этого коммита. Увы, мой 4.0.3 из epel такого не делал, неясно по какой причине. Решение с vcl нашлось только для 3 версии:

sub vcl_fetch {
  if (req.http.Cache-Control ~ "(private|no-cache|no-store)" || req.http.Pragma == "no-cache") {
    return (pass);
  }
}

В 4 версии поменялись названия переменных и vcl, так что после некоторых замен конструкция выглядит так:

sub vcl_backend_response {
  if (beresp.http.Cache-Control ~ "(private|no-cache|no-store)" || beresp.http.Pragma == "no-cache") {
    set beresp.uncacheable = true;
  }
}

Либо поместить это в уже существующий vcl_backend_response. Вроде бы работает. 🙂

Как заставить yum переустановить пакет

Если по какой-то причине требуется восстановить содержимое пакета к его виду в rpm-пакете, можно поступить следующим образом:
Читать далее «Как заставить yum переустановить пакет»