Welcome! Log In Create A New Profile

Advanced

Re: location / внутри location /

Slawa Olhovchenkov
January 27, 2021 11:16AM
On Wed, Jan 27, 2021 at 07:07:35PM +0300, Maxim Dounin wrote:

> Hello!
>
> On Wed, Jan 27, 2021 at 06:43:10PM +0300, Slawa Olhovchenkov wrote:
>
> > On Wed, Jan 27, 2021 at 06:34:15PM +0300, Maxim Dounin wrote:
> >
> > > Hello!
> > >
> > > On Wed, Jan 27, 2021 at 05:08:45PM +0300, Slawa Olhovchenkov wrote:
> > >
> > > > А возможна ли конструкция типа такой:
> > > >
> > > > location / {
> > > > rewrite ....;
> > > > rewrite ....;
> > > > location ~ /../(..)... {
> > > > try_files /$2/$3/$2$3$4_$1.bin @proxy;
> > > > }
> > > > location / {
> > > > try_files /notexist @proxy;
> > > > }
> > > > }
> > > > location @proxy {
> > > > }
> > > >
> > > > Ну т.е. смысл в том, что не попадает под маску -- сразу брать с
> > > > апстрима, а что под маску попадает -- проверять на диске и если нет --
> > > > брать с апстрима.
> > >
> > > Возможна. Впрочем, в предложенной конструкции вложенный "location /"
> > > избыточен, его содержимое можно написать непосредственно во
> > > внешнем "location /".
> >
> > а кстати, есть ли какой-то более изящный способ сделать внутрений
> > редирект на @proxy в данном случае?
>
> Можно сделать
>
> error_page 418 @proxy;
> return 418;
>
> "Более изящный" ли это способ - затрудняюсь сказать, но более
> смешной.
>
> Более правильным в данном случае будет просто прописать
> проксирование явно.

в смысле два раза копировать конфигурацию прокси?
она сильно развесистая, не хотелось бы дублирования.

> > > Заодно и написанные во внешнем "location /" директивы rewrite
> > > обретут какой-то смысл (впрочем, скорее всего по прежнему
> > > неверный, так как эти директивы не применяются к запросам,
> > > попавшим в любой из вложенных location'ов).
> >
> > разве rewrite применяется не до разбора вложенных локейшинов?
>
> Нет. Дерево location'ов - общее, поиск подходящего location'а по
> URI - это единая операция. Директивы rewrite применяются из
> найденного подходящего к запросу location'а. Подробности
> применения директив rewrite расписаны в описании модуля rewrite,
> тут:
>
> http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html

читал, но понял видимо неправильно, в том куске который "Если
директива указана внутри location, дальнейшая обработка запроса
продолжается в этом location.". я это понял так, что при наличии там
вложенных локейшинов подбор будет продолжен с них.

а почему, кстати, может игнориоваться директива set?
я по дебаг логу смотрю, попадаю во вложенный локейшен, там у меня есть
set но он даже выполняться не собирался.

да, сейчас туда скопированы rewrite.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

location / внутри location /

Slawa Olhovchenkov January 27, 2021 09:10AM

Re: location / внутри location /

Maxim Dounin January 27, 2021 10:36AM

Re: location / внутри location /

Slawa Olhovchenkov January 27, 2021 10:44AM

Re: location / внутри location /

Maxim Dounin January 27, 2021 11:08AM

Re: location / внутри location /

Slawa Olhovchenkov January 27, 2021 11:16AM

Re: location / внутри location /

Maxim Dounin January 27, 2021 12:36PM

Re: location / внутри location /

Slawa Olhovchenkov January 27, 2021 12:54PM

Re: location / внутри location /

Maxim Dounin January 27, 2021 01:10PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 87
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready