Re: Уточнение логики работы ngx_http_auth_request_module

Eugene Mychlo myc at barev.net
Wed Nov 6 12:31:46 UTC 2013


06 нояб. 2013 г., в 16:15, Maxim Dounin <mdounin at mdounin.ru> написал(а):

> Hello!
> 
> On Wed, Nov 06, 2013 at 03:53:09PM +0400, Eugene Mychlo wrote:
> 
>> Добрый день,
>> 
>> 05 нояб. 2013 г., в 0:19, Maxim Dounin <mdounin at mdounin.ru> написал(а):
>> 
>> […]
>> 
>>> 
>>> Модуль auth_request не пытается реализовывать каких-либо 
>>> протколов сам, он просто делает подзапрос.  Точно так же, как это 
>>> делает SSI или модуль addition.
>>> 
>>> Настроить необходимую обработку для соответствующего URI, который 
>>> вы используете в auth_request - ваша задача, будь то проксирование 
>>> или что-либо ещё.
>> 
>> […]
>> 
>> Раз возник топик про логику auth_request, задам и я пару уточняющих воросов:
>> 
>> 1. Что вернется клиенту, если auth-подзапрос вернет код отличный от 200, 403 и 401, скажем 404 или 301, или 5xx?
> 
> Клиенту уйдёт 500, в логах появится запись "[error] ... auth 
> request unexpected status: 404 ...».
> 

Понятно.


>> 2. Есть ли возможность в основном запросе получить, в виде переменных, заголовки возвращаемые  auth-подзапросом?
>> Просто есть желание заменить X-Accel-Redirect, и проксировать на разные бэкенды в зависимости от того, что вернул auth-бэкенд.
> 
> Антон уже отписал, директива auth_request_set - позволяет вынуть 
> данные из заголовков ответа бекенда и сложить их в переменные.  
> Использовать можно как-то так:
> 
>    location / {
>        auth_request /auth;
>        auth_request_set $backend $upstream_http_x_backend;
> 
>        proxy_pass http://$backend;
>    }
> 
> http://nginx.org/r/auth_request_set
> 

В догонку.
Директива auth_request понимает именованные локейшены?

--
Regards,
Eugene Mychlo MYC-RIPE EAMYC-RIPN



Подробная информация о списке рассылки nginx-ru