Как настроить кэширование статики в nginx?



@furyon

Нужно настроить сервер, раздающий изображения. Изображения он должен брать и кэшировать с http://1.2.3.4. Текущий конфиг:
proxy_cache_path /var/www/my_cache levels=2:2:2 keys_zone=STATIC:100m inactive=1d;
server {
    listen 80 default_server;
    server_name _;
    location / {
        proxy_pass          http://1.2.3.4;
        proxy_buffering     on;
        proxy_cache         STATIC;
        proxy_cache_valid   200 100d;
    }
}

Проблема в том, если я обновлю в браузере изображение через ctrl+f5, данный конфиг пойдет за изображением к http://1.2.3.4 даже если оно есть в кэше. Та же ситуация если я открою изображение в другом браузере.

Пробовал в т.ч.:

proxy_ignore_headers X-Accel-Expires;
proxy_ignore_headers Set-Cookie;
proxy_ignore_headers Cache-Control;

и

proxy_hide_header Cache-Control;
proxy_hide_header Set-Cookie;

Т.е. суть задачи: Если изображение есть в кэше и не истек proxy_cache_valid, всегда отдавать из кэша, без разницы кто и с какими заголовками запрашивает.

Рад любым наводкам. Заранее спасибо.


Решения вопроса 0


Ответы на вопрос 1



@slashinin

Может не совсем в тему, но подобные решения есть у Varnish.
Это как раз кэширующий сервер и его работу можно легко настроить в паре с nginx.

Тематические статьи есть тут
https://ruhighload.com/varnish

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *