DANic
@DANic
Интроверт

Как правильно использовать return вместо rewrite в конфигурации nginx?

Доброго времени суток.

После просмотра доклада Игоря Сысоева на HL++ https://vimeo.com/117154512 , сделал вывод что в конфигурации Nginx лучше избегать использование регулярок и реврайтов, но не знаю как избежать этого в следующей ситуации, нужно реврайтить следующее

location /tst_
	rewrite ^/tst_([0-9]+)_(.+) /?mode=feed&feed=$1&token=$2 last;
	rewrite ^/tst_([0-9]+) /?mode=feed&feed=$1 last
}


могу избежать этого так, но тогда придется прибегнуть к регуляркам

location ~/tst_([0-9]+) {
  return 302 http://example.ru/?mode=feed&feed=$1;
  location ~/tst_([0-9]+)_(.+) {
    return 302 http://example.ru/?mode=feed&feed=$1&token=$2;
  }
}


Что использовать приоритетнее? Или возможно ли как то избежать и реварйтов и регулярок (или экранировать регулярку в данном случае)
  • Вопрос задан
  • 308 просмотров
Пригласить эксперта
Ответы на вопрос 1
Lynn
@Lynn
nginx, js, css
Вы вынесли какую-то неправильную мысль.
Правильная: по возможности избегать location с регулярными выражениями.

Ваш первый вариант будет работать быстрее. К тому же он не эквиваленен второму, потому что не вызывает редирект.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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