Обработка регулярок в nginx

Дабы не возвращаться к вниканию в официальную документацию, закреплю основные моменты конфигурирования nginx.
Синтаксис директивы location:

location [ = | ~ | ~* | ^~ ] uri { ... }

Порядок проверки директив location:

  1. = точное совпадение ссылки, поиск прекращается
  2. ^~ строки без регулярных выражений, поиск прекращается
  3. поиск подходящей регулярки, сначала на максимальное совпадение, затем по порядку в файле конфигурации (если 2 одинаковых, работает с верхним)
    • ~ совпадение с учетом регистра
    • ~* совпадение без учета регистра
  4. если подходит под регулярку — п3, иначе п2

Пример:

location = / {
# попадет только / запрос в корень.
[ конфигурация A ]
}
location / {
# попадут любые запросы, но сначала проверятся ниже
[ конфигурация B ]
}
location /documents/ {
# попадут все запросы, начинающиеся на /documents/,
# продолжится проверка на регулярки. Обработается, только
# если не будет подходящих регулярок
[ конфигурация C ]
}
location ^~ /images/ {
# попадут все запросы с началом на /images/,
# поиск прекратится
[ конфигурация D ]
}
location ~* \.(gif|jpg|jpeg)$ {
# попадут все запросы с окончанием на gif, jpg, jpeg. Но, запросы
# с началом на /images/ сюда уже не попадут
[ конфигурация E ]
}

Примеры запросов:

/ конфигурация A
/index.html конфигурация B
/documents/document.html конфигурация C
/images/1.gif конфигурация D
/documents/1.jpg конфигурация E

Ссылки: