Назад | Перейти на главную страницу

Установить TTL по умолчанию в Varnish 4.0?

Я новичок в Varnish и использую версию 4.0 на Debian Wheezy.

Я хотел бы установить TTL по умолчанию для моего кеша на 4 недели (очень статичный контент).

После прочтения документации я думаю, что ответ - установить default_ttl вариант где-то в моем файле VCL. у меня есть искал документы но могу только найти одну ссылку к нему.

я обнаружил этот вопрос но я думаю, что ответ должен быть устаревшим, потому что он не работает для меня.

Может кто-нибудь уточнить, как это сделать в Varnish 4.0?

ОБНОВЛЕНИЕ: вот мой файл конфигурации (по умолчанию, который поставляется с Varnish 4.0, за исключением того, что я указал серверную часть на localhost):

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

sub vcl_backend_fetch {
    set obj.ttl = 4w;
}

sub vcl_recv {
    # Happens before we check if we have this in cache already.
    #
    # Typically you clean up the request here, removing cookies you don't need,
    # rewriting the request, etc.
}

sub vcl_backend_response {
    # Happens after we have read the response headers from the backend.
    #
    # Here you clean the response headers, removing silly Set-Cookie headers
    # and other mistakes your backend does.
}

sub vcl_deliver {
    # Happens when we have all the pieces we need, and are about to send the
    # response to the client.
    #
    # You can do accounting or modifying the final object here.
}

default_ttl это параметр времени выполнения. Вы можете установить его при запуске varnishd.

default_ttl

Единицы: секунды По умолчанию: 120,000 Минимум: 0,000 Флаги: TTL, назначаемый объектам, если ни серверная часть, ни код VCL не назначают его.

Вы можете установить этот параметр двумя способами. Какой бы способ вы ни выбрали, он сделает то же самое.

Вы можете использовать ярлык -t

-t ttl Задает жесткое минимальное время жизни для кэшированных документов. Это ярлык для указания параметра времени выполнения default_ttl.

или, вы можете использовать -p param=value

Так, например, вы можете запустить varnishd так:

Используя ярлык: varnishd -a 127.0.0.1:8081 -T 127.0.0.1 -t 2419200

Использование более длинной формы: varnishd -a 127.0.0.1:8081 -T 127.0.0.1 -p default_ttl=2419200

Число 2419200 - 4 недели в секундах.

Принятый ответ - один из способов достижения цели. Однако на самом деле вы можете идеально установить TTL по умолчанию в файле /etc/varnish/default.vcl следующим образом:

sub vcl_backend_response {
 set beresp.ttl = 4w;
}