Re: Принудительно обновить/очистить кеш для определенного локейшена
Eugene Grigorenko
partizan4ik на gmail.com
Чт Янв 28 23:39:01 MSK 2010
Denis Kot пишет:
> Требуется раз в сутки, допустим в 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
> часа?
>
> нужно картинки в /blablabla/images/stat/ обновлять раз в 24 часа, а
> остальное можно и раз в 48 часов.
> при чем /blablabla/ может быть разный. т.е. /blabla/... и
> /blablabla/..., т.е. локейшн /stat/ надо взять из середины URI
>
> Denis Kot
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
У себя для обновления кеша в 00 часов делал так:
http {
perl_set $mday 'sub { use Time::localtime; return(localtime->mday)}';
...
server {
location /lines
...
proxy_cache_key
"$mday|$http_if_modified_since|$http_if_none_match|$request_uri";
Думаю смысл понятен. Кстати, nginx собирать с --with-http_perl_module
Подробная информация о списке рассылки nginx-ru