ПРОЕКТЫ 


  АРХИВ 


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: [ANNOUNCE] auth request module 0.2


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: [ANNOUNCE] auth request module 0.2
  • From: "Виктор" <nginx-forum@xxxxxxxx>
  • Date: Fri, 04 Jun 2010 02:41:09 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=bX0WDejER556AoqP563R2kBi1ExLmkBw4BVvwFhIROo=; b=AEt269/wuuR+Eu/cVYmIo00piEAuPxK2RaBjYBkeKSI5dm2/IIyAui3Q6rIveHCjFmNweANUETY3684Niu3Uy0NGFdsevhgfOvL9savKsYMAGLvhxghaWkwAvbsRTnFs;
  • In-reply-to: <20100603151535.GU76989@xxxxxxxxxx>
  • References: <20100603151535.GU76989@xxxxxxxxxx>

> >       location / {
> >              auth_request /auth;
> >              auth_request_set $cached
> $upstream_http_x_ok;
> >    
> >             # должно быть что-то
> для выхода на @cached1 @cached2 или
> @nocached
> >             # в зависимости от
> того авторизован
> пользователь или нет
> >       }
> > }
> > 
> > Подскажи пожалуйста, как
> обработать на nginx
> информацию 
> > переданную с back-end'а. Могу
> вернуть оттуда параметр в 
> > заголовке или через
> статус, но вот как это
> описать в конфиге 
> > nginx?
> 
> Вернуть заголовок, сделать
> auth_request_set этого заголовка 
> в переменную.  Далее либо
> уйти в нужный location в
> зависимости от 
> значения этой переменной,
> либо (если нужно просто
> отключить кеш) 
> воспользоваться proxy_no_cache
> (0.8.38+).
> 
> Maxim Dounin

не выходит...  делаю вот так:

http {
server {
set $cached 0;

location @cached1 {
proxy_pass http://127.0.0.1;
proxy_cache one;
...
}

location @cached2 {
proxy_pass http://127.0.0.1;
proxy_cache two;
...
}

location @nocached {
proxy_pass http://127.0.0.1;
proxy_set_header X-Set-Cached $cached;
}

location = /auth {
proxy_pass http://127.0.0.1;
}

location / {
auth_request /auth;
auth_request_set $cached $upstream_http_x_ok;

if ($cached = 1) {
      error_page 404 405 502 504 = @cached1;
      break;
}

if ($cached = 2) {
      error_page 404 405 502 504 = @cached2;
      break;
}

if ($cached = 0) {
       error_page 404 405 502 504 = @nocached;
       break;
}

}
}

При этом проксирую тот заголовок который получил от /auth в заголовок 
X-Set-Cached основного запроса. На стороне back-end'а в основном запросе я его 
вижу, а в блоке if почему-то срабатывает @nocached

nginx version: nginx/0.7.65

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,67419,94382#msg-94382


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.