Как выбирается локейшн соответствующий запросу

Nginx из имеющихся локейшенов отбирает наиболее соответствующий для каждой из груп: * = — локальная часть URL(после домена) полностью совпадает с указанной после =; * ~ — локальная часть URL соответствует регулярному выражению, сравнение с учётом регистра символов(на Windows и MacOX X не учитывается регистр символов имён файлов, там ~ работает идентично *); * * — локальная часть URL соответствует регулярному выражению, сравнение без учёта регистров; * ^~ — ищется лучшее соответствие указанному фрагменту URL, механизм регулярных выражений не используется; * / — префиксный локейшн, где фрагмент пути, указанный после / буде сверяться с начальной частью URL(расположением), в процессе выбирается локейшн, расположение которого наиболее полно соответствует запрошенному URL. К примеру, если у нас есть префиксные локейшены для /.well-known/acme-challenge, /.well-known и /, для URL https://www.example.com/.well-known/acme-challenge/AWLJsaqyJmI6HLVzHnwIzW6G_9tX-gZARlh6BKN-dXQ наиболее полным соответствием будет location /.well-known/acme-challenge.

Логика при этом такая: 1. локейшн с = у нас — высший приоритет, если есть совпадение, можно больше ничего не искать, это наш локейшн; 2. для оставшихся вариантов с регулярками и ^~ выбираем наиболее соответствующий вариант, где в приоритете наилучшее совпадение с ~, если его нет, с ~*, если его нет, то ^~; 3. с регулярками облом? Переходим к поиску наилучшего префиксного локейшена без регулярки, выбираем наиболее полно соответствующий.

https://habr.com/ru/company/oleg-bunin/blog/313666/ https://habr.com/ru/post/348206/