Принуждение ттл в лаке 6.2 - PullRequest
0 голосов
/ 03 июня 2019

Я смотрю на последнюю версию Varnish (6.2) и испытываю проблемы с удалением return (miss) из vcl_hit.

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

sub vcl_hit {

        if (obj.ttl >= 0s) {
            return (deliver);
        }
        else
        {
            return (miss);
        }
    }

Однако в 6.2 возврат (промах) был удален, мы хотим, чтобы содержимое всегда обновлялось корректно.

Я посмотрел на return (pass), но из документации это говорит о том, что ответ не будет кэширован, а это не то, что нам нужно.

и return (fetch) некоторое время не было вариантом, но я изо всех сил пытаюсь найти альтернативу? В качестве возврата (перезапуска), предложенного в документации, будет просто возвращаться к тому же месту.

Должен ли я искать в другом месте и пытаться отключить благодать / святой?

1 Ответ

0 голосов
/ 06 июня 2019

vcl_hit - неправильная подпрограмма по нескольким причинам, главная из которых - сложный способ с побочными эффектами сделать что-то тривиальное.Просто сделайте:

sub vcl_backend_response {
    # set the ttl
    set beresp.ttl = 5m;
    # after ttl is gone, grace kicks in during which
    # content is revalidated asynchronously
    set beresp.grace = 2h;
    # after grace, keep kicks during which
    # content is revalidated synchronously
    set beresp.keep = 3d;
}

Ваш фрагмент эквивалентен установке благодати и сохраните значение 0s.

...