Re: Уточнение логики работы ngx_http_auth_request_module
Maxim Dounin
mdounin at mdounin.ru
Wed Nov 6 12:15:12 UTC 2013
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
--
Maxim Dounin
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru