# конспект · шаг 1 из 1
Конспект раздела: location
Раздел про решение №2 - сердце маршрутизации. Половина вопросов «почему отдаётся не то» разбирается отсюда.
Алгоритм на одной карточке
= точный URI → победил сразу
^~ длинный префикс → победил, регулярки пропускаются
~ ~* регулярки → первая совпавшая СВЕРХУ ВНИЗ
обычный префикс → запоминается по длине, побеждает, если регулярок нет
| Что решает порядок в файле | Что решает длина |
|---|---|
| споры между регулярками | споры между префиксами |
Пять фактов, которые экономят вечер
- Префикс - это строка, а не путь:
/appловит/application.log. - Регулярка бьёт длинный префикс - если это не нужно, ставь
^~. - Вложенные блоки сравниваются с полным URI, а не с остатком, и обязаны лежать внутри внешнего префикса - иначе конфиг не загрузится.
- Вложенные регулярки спрашиваются раньше внешних.
- Именованный
@blockдоступен только черезtry_filesиerror_page, аerror_pageне перехватывает ответ бэкенда безproxy_intercept_errors. - Сравнивается нормализованный URI: без строки запроса, с раскодированными
процентами и схлопнутыми
...
Как отлаживать
add_header X-Location "images-regex"; # свой маркер в каждый спорный блок
$ команда
curl -I http://shop.local/images/logo.png
Заголовок в ответе прямо называет победивший блок - быстрее, чем спорить с конфигом по памяти.
Чек-лист: что ты должен уметь объяснить
- Полный алгоритм выбора location по шагам.
- Почему
location /images/проигрываетlocation ~ \.png$и как это исправить. - Что произойдёт с запросом
/application.logприlocation /app. - Зачем нужны именованные location и кто может в них попасть.
- Когда вложенность помогает, а когда лучше плоский список.
Комментарии
Пока нет комментариев. Будь первым!
Оставить комментарий