Алгоритм выбора location в Nginx основан на сравнении URI запроса с каждым из местоположений. www.8host.com frankindev.com
Процесс происходит по следующему алгоритму: www.8host.com
- Проверка всех блоков location, заданных префиксными строками. www.8host.com Для этого location сравнивается с полной строкой URI. www.8host.com
- Поиск точного совпадения. www.8host.com Если находится location с модификатором =, то поиск прекращается и используется найденная конфигурация. www.8host.com
- Поиск по неточным совпадениям. www.8host.com Ищется location с совпадающим префиксом максимальной длины для заданного URI. www.8host.com
- Оценка префикса: www.8host.com
- Если location с совпадающим префиксом максимальной длины содержит модификатор ^~, то Nginx немедленно прекратит поиск и выберет этот блок location для обслуживания запросов. www.8host.com
- Если location с совпадающим префиксом максимальной длины не содержит модификатора ^~, то Nginx запомнит этот префикс и продолжит поиск. www.8host.com
- Оценка регулярных выражений (с учётом и без учёта регистра). www.8host.com Если в location с совпадающим префиксом максимальной длины есть какие-либо блоки location с регулярными выражениями, Nginx поместит их в начало списка регулярных выражений для проверки. www.8host.com
- Последовательное сравнение блоков с регулярными выражениями. www.8host.com Для обработки будет выбрано первое выражение, которое соответствует URI запроса. www.8host.com
- Если совпадение с регулярным выражением не найдено, Nginx использует конфигурацию запомненного ранее префиксного location. www.8host.com
По умолчанию Nginx будет обслуживать регулярные выражения, отдавая предпочтение совпадениям по префиксам. www.8host.com Однако сначала он оценивает префиксные location, позволяя администратору переопределять это поведение, указав location с помощью модификаторов = и ^~. www.8host.com