кеширование и авторизация

Андрей Бойко kaa at berloga.ru
Sun Aug 23 23:57:40 MSD 2009


У такого варианта есть двое подводных грабель (или граблей?)
1. Не все знают перл, скажем так, это своеобразный язык.
2. Не думаю, что это наилучшим образом повлияет на призводительность.
Второй пункт обосную примером - однажды использовал встроенный перл в отличном мэйлере exim для кеширования запросов к бэкенду (mysql) - бедняга экзим сразу стал лидером top-а (раньше он там вообще замечен не был). У меня есть подозрение, что проверить наличие файла (или ключа в key-value) на С будет быстрее, чем проверить куку на перле. Но может я и ошибаюсь.

On Fri, 21 Aug 2009 21:06:45 +0400
Igor Sysoev <is at rambler-co.ru> 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 at rambler-co.ru> 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 at rambler-co.ru> 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 at berloga.ru>





More information about the nginx-ru mailing list