[ANNOUNCE] auth request module 0.2

Виктор nginx-forum на nginx.us
Пт Июн 4 10:41:09 MSD 2010


> >       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