Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: кеширование и авто ризация
У такого варианта есть двое подводных грабель (или граблей?)
1. Не все знают перл, скажем так, это своеобразный язык.
2. Не думаю, что это наилучшим образом повлияет на призводительность.
Второй пункт обосную примером - однажды использовал встроенный перл в отличном
мэйлере exim для кеширования запросов к бэкенду (mysql) - бедняга экзим сразу
стал лидером top-а (раньше он там вообще замечен не был). У меня есть
подозрение, что проверить наличие файла (или ключа в key-value) на С будет
быстрее, чем проверить куку на перле. Но может я и ошибаюсь.
On Fri, 21 Aug 2009 21:06:45 +0400
Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
> On Fri, Aug 21, 2009 at 06:51:40PM +0400, Андрей Бойко wrote:
>
> > Хорошо, все достаточно просто и ясно.
> > А теперь расширю горизонт. Допустим, есть стадо бакендов. Плодить на каждом
> > из них файлы непрактично и бессмысленно. Есть масштабируемое решение -
> > мемкэш(дб) - можно создавать ключи там. Есть ли возможность организовать
> > такую проверочку средствами nginx (ну то есть мы заменяем try_files
> > например на try_memcached - или как-то еще иначе)?
>
> Я вообще не понимаю, зачем нужно куда-то ходить для проверки валидности
> значения куки. Значение куки достаточно зашифровать как-то так:
>
> время действия + HMAC(время действия)
>
> и проверять это встроенным перлом, как было описано в самом начале.
> И не надо ни куда ходить и плодить файлы.
>
> > On Fri, 21 Aug 2009 16:09:45 +0400
> > Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
> >
> > > On Fri, Aug 21, 2009 at 04:00:45PM +0400, Denis Shaposhnikov wrote:
> > >
> > > > On Fri, 21 Aug 2009 15:03:32 +0400
> > > > Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
> > > >
> > > > > location / {
> > > > >
> > > > > root /path/to/cookie_files;
> > > > > $cookie_NAME @auth;
> > > > >
> > > > > proxy_pass http://backend; # без слэша!!
> > > > > proxy_cache ...
> > > > > }
> > > > >
> > > > > location @auth {
> > > > > proxy_pass http://backend;
> > > > > }
> > > >
> > > > А что здесь означает "$cookie_NAME @auth"? Это просто опечатка или
> > > > работающая конструкция?
> > >
> > > - $cookie_NAME @auth;
> > > + try_files $cookie_NAME @auth;
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>
--
Андрей Бойко <kaa@xxxxxxxxxx>
|