Re: Принудительно обновить/очистить кеш для определенного локейшена
Denis Kot
denis.kot на gmail.com
Чт Янв 28 23:29:10 MSK 2010
Да, был.Ок, завтра посмотрю. Спасибо.
Denis Kot
28 января 2010 г. 22:12 пользователь Igor Sysoev <igor at sysoev.ru> написал:
> On Thu, Jan 28, 2010 at 06:07:02PM +0200, Denis Kot wrote:
>
>> Сделал так:
>>
>> 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, в том числе и на инфобар?
>
> Нет, регэксы в правильном порядке.
> Этот /blabla/infobar/3014023.png до этого в кэше был, если да - то у него
> старое время кэширования - 24h.
>
>> 28 января 2010 г. 13:21 пользователь Igor Sysoev <igor at sysoev.ru> написал:
>> > On Thu, Jan 28, 2010 at 01:13:41PM +0200, Denis Kot wrote:
>> >
>> >> 28 января 2010 г. 13:01 пользователь Igor Sysoev <igor at sysoev.ru> написал:
>> >> > 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 at nginx.org
>> > http://nginx.org/mailman/listinfo/nginx-ru
>> >
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://nginx.org/mailman/listinfo/nginx-ru
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
Подробная информация о списке рассылки nginx-ru