ПРОЕКТЫ 


  АРХИВ 


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: cache



On Tuesday 14 November 2006 00:03, Igor Sysoev wrote:
> On Mon, 13 Nov 2006, Andrei Nigmatulin wrote:
> > Вся загвоздка в том, как правильно организовать $cached_file_is_too_old.
> > Я пробовал вот так:
> >
> >        perl_set $cached_file_is_too_old '
> >                sub {
> >                        my $r = shift;
> >                        if (time() - (stat $r->filename)[9] > 10) {
> >                                return "1";
> >                        }
> >                        return "";
> >                }
> >        ';
> >
> > Но в момент запроса в error_log выдается следующее:
> >
> > 2006/11/12 22:43:25 [error] 23481#0: *1 call_sv("
> >                sub {
> >                        my $r = shift;
> >                        if (time() - (stat $r->filename)[9] > 10) {
> >                                return "1";
> >                        }
> >                        return "";
> >                }
> >        ") failed: "Can't call method "filename" on an undefined value at
> > (eval 1) line 3.", client: 127.0.0.1, server: inspirer.lan, URL:
> > "/5.html", host: "localhost:8080"
> >
> > Как можно правильно проверить устаревание файла в моем случае ?
>
> У меня не воспроизводиться. Что показывает

Скорее всего у Вас не воспроизводилось, потому что срабатывала первая проверка 
(!-f $request_filename) и не вызывался скрипт, который должен был сгенерить 
этот файл. Поэтому до проверки if ($cached_file_is_too_old) дело не доходило.

Воспроизводится ли у Вас сообщение об ошибке вот с таким конфигом ?

    perl_set $cached_file_is_too_old '
        sub {
            my $r = shift;
            if (time() - (stat $r->filename)[9] > 10) {
                return "1";
            }
            return "";
        }
    ';

    server {
        listen       8000;
        server_name  localhost;

        location / {
            root html;
            if ($cached_file_is_too_old) {
                root html2;
            }
        }
    }


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take

  • Follow-Ups:
  • References:

 




Copyright © Lexa Software, 1996-2009.