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

Настройка кеш-хранилища HAProxy для кеширования только определенных типов файлов

Я создаю новый балансировщик нагрузки, и мне нужно настроить кеш для хранения только определенных типов файлов. На данный момент моя конфигурация хочет кэшировать только все, достаточно маленькое, чтобы поместиться. Я попытался настроить переменную на основе запроса и вызвать ее в операторе cache-store, но в зависимости от поведения службы она все кэширует.

Мы настроили тестовое окно для извлечения и включили задержку в ответ, чтобы мы могли определить, был ли ответ от тестового сервера или кеша. Мы также можем увидеть завитки в журнале доступа, если они действительно попадают на сервер. Меня не беспокоит, что мой тест ошибочен; У меня есть четкое доказательство того, когда запрос попадает на сервер, а не когда он извлекается из кеша.

Вот соответствующие части моей конфигурации

frontend <redacted>
        bind <IP>:80
        bind <IP>:443 ssl crt <certificate.pem> ssl-min-ver TLSv1.2 alpn h2,http/1.1

        http-request set-var(req.path) hdr(Path) if { path_end .jpeg .jpg .png .gif .svg .ico .css .less .ttf .eot }

        acl cachedata path_end .jpg .jpeg .png .gif .svg .ico .css .less .ttf .eot

        http-request add-header X-Forwarded-Proto https if { ssl_fc }
        http-request cache-use lb if cachedata
        http-response cache-store lb if { var(req.path) -m end .jpg .jpeg .png .gif .svg .ico .css .less .ttf .eot }

        redirect scheme https code 301 if !{ ssl_fc }

        default_backend <redacted>

cache lb
        total-max-size 1024
        max-age 600