Re: rewrite и ngx_aws_auth

Slawa Olhovchenkov slw на zxy.spb.ru
Ср Июл 22 14:14:34 UTC 2020


On Wed, Jul 22, 2020 at 05:07:20PM +0300, Maxim Dounin wrote:

> Hello!
> 
> On Wed, Jul 22, 2020 at 04:27:58PM +0300, Slawa Olhovchenkov wrote:
> 
> > Пытаюсь подружить rewrite и ngx_aws_auth и выходит что-то странное.
> > 
> > в конфигурации локейшена у меня
> > 
> >             rewrite /(.*) /$host/$1;
> >             rewrite /([^.]+)[^/]+/(.*) /$1/$2 break;
> > 	    aws_sign;
> > 
> > В дебаге видно что rewrite uri меняет, а ngx_aws_auth получает
> > немодифицированный uri.
> > 
> > если в локейшине написать if -- ngx_aws_auth вообще не срабатывает
> > (хотя тут я могу догадаться что он не наследуется).
> > 
> > Отсюда вопросы:
> > 
> > что за фигня?
> > что происходит?
> > какую переменную на самом деле меняет rewrite?
> 
> Заглянул в код этого ngx_aws_auth, всплакнул.

да я уже неделю матерюсь. он еще и переменных где надо не понимает.

> Всё правильно, работать не будет.  И не только после rewrite'а, но 
> и в других непредсказуемых ситуациях - при наличии аргументов в 
> запросе модуль лезет в r->uri_start, значение которого имее смысл 
> только в момент парсинга URI и не гарантируется в остальное 
> время[1][2].  
> 
> Лечится переписыванием модуля, чтобы использовал r->uri всегда.

Ах вот оно как. Отлично, это из-за аргументов, а мне они нахрен не
нужны.
Отрезание помогает.


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