Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: кеширование и авто ризация
Если я правильно все прочитал про x-accel-redirect - каждый раз таки будет
дергаться апач с php. Суть в том, что в php все процессы и так оптимизированы
до отдачи готового файла с диска или из мемкеша. Задача как раз в том, чтобы
апач не дергать вообще (пока кеш есть), но при этом таки проверять
авторизованность.
Мне видится такой вариант скорее - в php создавать файл с тем же именем, что
значение куки, и nginx-ом проверять его наличие. Тогда при авторизации один раз
дергается php/апач, а потом не дергается. Пока только не соображу, как
проверять.
Или я где-то не дочитал про x-accel-redirect?
On Fri, 21 Aug 2009 14:03:32 +0400
Igor Sysoev <is@xxxxxxxxxxxxx> wrote:
> On Fri, Aug 21, 2009 at 04:57:13PM +0700, Artem Bokhan wrote:
>
> > Андрей Бойко пишет:
> > >Добрый день.
> > >
> > >У меня возникла такая задача - есть некий сайт (или раздел сайта, не
> > >важно), требующий авторизации для просмотра. Нагрузка на него достаточно
> > >высокая, в связи с чем возникло желание его закешировать средствами nginx.
> > >При этом, информация на сайте не персонифицирована (то есть все
> > >авторизовавшиеся видят одно и то же). Можно ли как-то сделать, чтобы nginx
> > >проверял, авторизовался ли пользователь (установлена кука, и она валидна),
> > Наверное, проверять куку лучше тому, кто ее выдал, а не nginx'у. Это
> > можно сделать с помощью x-accell-redirect.
>
> Можно так.
>
> location / {
> proxy_pass http://backend;
> proxy_cache usual;
> proxy_cache_key "$host$request_uri $cookie_NAME";
> ...
> }
>
> location /p/ {
> internal;
> proxy_pass http://backend/;
> proxy_cache protected;
> ...
> }
>
> Для авторизованных пользователей выдавать:
> X-Accel-Expires: 0
> X-Accel-Redirect: /p/...
>
> Тогда для обычных пользователей ($cookie_NAME нет или неверная) будет
> выдаваться одна кэшированная копия, а для авторизованных - другая.
>
> > > и если авторизовался - ему отдавался запрошенный контент из кеша, а если
> > > нет - его редиректило на страницу авторизации?
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>
--
Андрей Бойко <kaa@xxxxxxxxxx>
|