Welcome! Log In Create A New Profile

Advanced

Re: В каком порядке обрабатываются location?

Maxim Dounin
February 12, 2018 08:54AM
Hello!

On Mon, Feb 12, 2018 at 04:31:18PM +0300, CoDDoC wrote:

> Доброе время суток!
> Слегка запутался в порядке обработки локейшенов.
> Такая структура:
>
> /1/index.html
> /23/index.html
> /456/index.html
> /7890/index.html
>
> Все файлы index.html, естественно, разные.
>
> Соответственно, тестовый конфиг:
>
> server {
>     ....
>     location = /1/ { rewrite ^ /1/index.html break; }
>     location = /23/ { rewrite ^ /23/index.html break; }
>     location = /456/ { rewrite ^ /456/index.html break; }
>     location = /7890/ { rewrite ^ /7890/index.html break; }

[...]

> Т.е. работает-то оно правильно, но проверки существующих
> локейшенов почему-то всегда начинаюся с "/456/". Не понимаю, чем
> он такой особенный? Если отталкиваться от длины, так самый
> длинный "/7890/"

Префиксные location'ы не проверяются последовательно, а строится
дерево, и поиск максимально совпадающего location'а делается
проходом по дереву. В вашем случае location /456/ оказался в
корне дерева, и поэтому проверяется первым.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

В каком порядке обрабатываются location?

CoDDoC February 12, 2018 08:32AM

Re: В каком порядке обрабатываются location?

Maxim Dounin February 12, 2018 08:54AM

Re[2]: В каком порядке обрабатываются location?

CoDDoC February 12, 2018 09:00AM

Re: В каком порядке обрабатываются location?

Maxim Dounin February 12, 2018 09:18AM

Re[2]: В каком порядке обрабатываются location?

CoDDoC February 12, 2018 09:32AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 266
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready