ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



Сделал так:

  location ~* 
^.+/infobar/.+\.(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)$
{
    proxy_cache_valid 200 1m;
    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;
  }


Подождал 3 минуты, обновил инфобар. В логах все равно:
HIT 1.2.3.4 "GET /blabla/infobar/3014023.png HTTP/1.0" 200 - 8761
поменял на proxy_cache_valid 200 1s; - тоже никакой реакции, все равно HIT
пробовал менять http://domain.ru на любой другой, картинка перестает
грузиться, т.е. локейшн обрабатывается верно.
что не так? или правила надо местами поменять? может второе правило
выставляет 24h на все .png, в том числе и на инфобар?


Denis Kot




28 января 2010 г. 13:21 пользователь Igor Sysoev <igor@xxxxxxxxx> написал:
> On Thu, Jan 28, 2010 at 01:13:41PM +0200, Denis Kot wrote:
>
>> 28 января 2010 г. 13:01 пользователь Igor Sysoev <igor@xxxxxxxxx> написал:
>> > 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 часов.
>>
>> Со времени 1-го 200 ответа на определенный урл или с последнего ответа?
>> Т.е. например есть http://domain.ru/image.png
>> запросили его первый раз, получили 200, закешировали. потом народ его
>> активно в течение суток запрашивает и получает из кеша и каждый раз
>> получает 200. 24h с какого момента считается?
>
> Со времени получения от бэкенда.
>
>> >> нужно картинки в /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;
>> >   }
>>
>> т.е. наоборот. там 24h, а там 48h.
>
> Значит, наоборот.
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.