Re: auth_request и переменные в proxy_pass
Maxim Dounin
mdounin на mdounin.ru
Ср Июл 22 13:41:26 UTC 2020
Hello!
On Wed, Jul 22, 2020 at 01:05:43PM +0300, Slawa Olhovchenkov wrote:
> On Tue, Jul 21, 2020 at 09:22:36PM +0300, Slawa Olhovchenkov wrote:
>
> > On Tue, Jul 21, 2020 at 08:47:15PM +0300, Maxim Dounin wrote:
> >
> > > Hello!
> > >
> > > On Tue, Jul 21, 2020 at 08:22:50PM +0300, Slawa Olhovchenkov wrote:
> > >
> > > > On Tue, Jul 21, 2020 at 08:13:12PM +0300, Maxim Dounin wrote:
> > > >
> > > > > Hello!
> > > > >
> > > > > On Tue, Jul 21, 2020 at 06:05:22PM +0300, Slawa Olhovchenkov wrote:
> > > > >
> > > > > > А я правильно понимаю, что в блоке proxy_pass который активируется по
> > > > > > auth_request никакие переменые от rewrite и/или $arg_ использовать не удастся?
> > > > >
> > > > > Почему нет? Ну то есть с переменными от модуля rewrite вообще
> > > >
> > > > ну вот попытка сделать set (блоком выше и потом использовать
> > > > переменную) у меня как-то не сработала -- пусто.
> > > > а set -- это rewrite только в порфиль.
> > >
> > > Видимо, "как-то не сработала" по каким-то другим причинам.
> > > Скажем, если делать set на уровне server - то он потом ещё раз
> > > сделается в подзапросе, и результат может быть отличен от
> > > ожидаемого (особенно если этот set использует переменные $arg_*,
> > > которые в подзапросе будут иметь другие значения).
> >
> > Возможно.
> > Сейчас еще раз перепрверил -- таки работает.
>
> А rewrite внутри location с auth_request срабатывает до или после
> сабреквеста?
> можно ли в нем использовать результат auth_request_set?
Rewrite - это часть процедура выбора конфигурации, а
auth_request/auth_basic/access - ограничение доступа к выбранной
конфигурации. Соответственно rewrite отрабатывает раньше, и
использовать результат auth_request_set в нём нельзя.
Результат auth_request_set можно, скажем, передать на бекенд через
proxy_set_header. Или выбрать бэкенд в соответствии с. Ну или
просто записать в лог.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru