@RomanSS

Есть ли смысл во вложенных location в nginx для оптимизации?

Знатоки в nginx, подскажите пожалуйста есть ли смысл в двойных локатион для оптимизации? Т.е. сначала отсеить по папке и только потом использовать регулярку
location /static/img/users/ {
                location ~ ^/static/img/users/([0-9]+)x([0-9]+)/\.(jpg|png|gif|jpeg)$ {
                        try_files $uri /index.php?p1=$1&p2=$2&p3=$3;
                }
 }


Или никакой разницы в производительности не будет, если сразу использовать такой вариант с одним локатион
location ~ ^/static/img/users/([0-9]+)x([0-9]+)/\.(jpg|png|gif|jpeg)$ {
               try_files $uri /index.php?p1=$1&p2=$2&p3=$3;
}


Оба варианта для меня рабочие, но хотелось бы узнать что лучше использовать. По моей логике первый вариант должен быть быстрее, так как он не будет использовать регулярку для всех обращений.

Может есть другой вариант написания?
  • Вопрос задан
  • 3569 просмотров
Решения вопроса 1
BuriK666
@BuriK666 Куратор тега Nginx
Компьютерный псих
Сначала проверяются location'ы, заданные не регулярными выражениями,
то есть, префиксы, точное совпадения (=) и префиксы с запретом
регулярных выражений (^~).

Пункт А. Если location найден и у него есть вложенные location'ы, то поиск
перемещается внутрь. Внутри сначала проверяются location'ы,
заданные не регулярными выражениями, если найден и у него есть вложенные,
то переходим в пункт А. Если не найден, то проверяются location'ы
с регулярными выражениями. Если location найден, то поиск прекращается.
mailman.nginx.org/pipermail/nginx-ru/2011-October/...

Лучше не париться по поводу подобной оптимизации, делайте чтоб удобнее было читать и править конфиг.

UPD:
Также будет полезно:
Как nginx обрабатывает запросы
Игорь Сысоев: Масштабируемая конфигурация nginx
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы