Как попросить Varnish ответить из кеша, не переходя на бэкэнд - PullRequest
0 голосов
/ 05 ноября 2019

Обычно я запрашиваю файл через прокси-сервер Varnish, он возвращает ответ из кеша или обращается к бэкенду для этого.
Есть ли способ запросить файл из кеша или получить 404 без принудительного доступа к Varnishбэкэнд?

1 Ответ

1 голос
/ 05 ноября 2019

Следующий тестовый пример показывает возможный подход:

varnishtest "..."

server s1 {
    rxreq
    txresp -hdr "Cache-Control: s-maxage=60"
} -start

varnish v1 -vcl+backend {
    sub vcl_miss {
        if (!req.http.X-Warm-Cache) {
            return (synth(404));
        }
    }
} -start

client c1 {
    txreq -url "/foo" -hdr "X-Warm-Cache: 1"
    rxresp
    expect resp.status == 200

    txreq -url "/foo"
    rxresp
    expect resp.status == 200

    txreq -url "/bar"
    rxresp
    expect resp.status == 404
} -run
...