Re: Принудительно обновить/очистить кеш для определенного локейшена

Igor Sysoev igor на sysoev.ru
Чт Янв 28 14:01:32 MSK 2010


On Thu, Jan 28, 2010 at 11:17:21AM +0200, Denis Kot wrote:

> Требуется раз в сутки, допустим в 8оо обновлять картинки в
> кеше/очищать кеш картинок, которые находятся по определенному пути,
> например /blablabla/images/stat/
> сейчас прописано так:
> 
>     proxy_cache_path /var/nginx/cache
>     levels=1:2 keys_zone=name:64m max_size=512m
>     inactive=2h;
> 
>   location ~* ^.+\.(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)$
> {
>     expires 24h;
>     log_not_found off;
>     error_page           404 = @fetch;
>   }
> 
>   location @fetch {
>     internal;
>     proxy_pass http://domain.ru;
>     proxy_cache name;
>     proxy_cache_min_uses 1;
>     proxy_cache_valid 200 24h;
>     proxy_cache_valid any 0;
>   }
> 
> т.е. по идее все картинки и файлы обновляются раз в 24 часа, так? или
> они обновляются только если с момента последнего кода 200 прошло 24
> часа?

Ответ обновится, если со времени его получения прошло больше 24 часов.

> нужно картинки в /blablabla/images/stat/ обновлять раз в 24 часа, а
> остальное можно и раз в 48 часов.
> при чем /blablabla/ может быть разный. т.е. /blabla/... и
> /blablabla/..., т.е. локейшн /stat/ надо взять из середины URI

А откуда взялась конструкция с @fetch ? По аналогии с proxy_store ?
Для proxy_cache она не нужна:

   location ~* ^.+/stat/.+\.(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)$
     proxy_cache_valid 200 48h;
     proxy_pass http://domain.ru;
     proxy_cache name;
     proxy_cache_min_uses 1;
   }

   location ~* ^.+\.(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)$

     proxy_pass http://domain.ru;
     proxy_cache name;
     proxy_cache_min_uses 1;
     proxy_cache_valid 200 24h;
   }


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru