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