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