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

Нужно настроить сервер, раздающий изображения. Изображения он должен брать и кэшировать с 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, всегда отдавать из кэша, без разницы кто и с какими заголовками запрашивает.

Рад любым наводкам. Заранее спасибо.
  • Вопрос задан
  • 580 просмотров
Пригласить эксперта
Ответы на вопрос 1
slashinin
@slashinin
Задачи для PHP https://justcoding.ru
Может не совсем в тему, но подобные решения есть у Varnish.
Это как раз кэширующий сервер и его работу можно легко настроить в паре с nginx.

Тематические статьи есть тут
https://ruhighload.com/varnish
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы