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
|