Re: proxy_bind, макросы и др
Maxim Dounin
mdounin на mdounin.ru
Вт Ноя 17 15:30:01 UTC 2015
Hello!
On Tue, Nov 17, 2015 at 04:43:27PM +0300, kpoxa wrote:
> Добрый день.
>
> proxy_bind в модуле stream не поддерживает работу с переменными, как и
> proxy_pass, что хотелось бы иметь использовать, например для ав тестов,
> определить переменную и через нее определять или куда отправлять коннект,
> или с какого адреса, иногда для тестов этого хватает.
В модуле stream сейчас нет работы с переменными. Добавлять её -
достаточно много работы, и стоит ли её добавлять - вопрос
дискуссионный. Это, всё-таки, очень специальный модуль для
специальных задач.
> В конфигах nginx часто приходится повторять одинаковые куски конфига,
> например выбор апстрима по локейшену, с настройках пропускаемых заголовков,
> что порождает большие конфиги или такого вида:
>
> location /one/ {
[...]
> у меня есть два предложения, как можно синтаксически это реализовать по
> другому, первый вариант это директива
> location_list (
> /one/
> /two/
> ) {
[...]
> второй это явная возможность вызова именованных локейшенов, например
Оба этих варианта уже неоднократно обсуждались, с различными
вариациями. У обоих есть те или иные недостатки:
- несколько префиксов будут, IMHO, сильно загромождать конфиг
визуально (и плохо согласуются с внутренней структурой
хранения location'ов);
- использование именованных location'ов будет приводить к
проблемам там, где префиксные location'ы важны и, скажем,
используются для замены URI в proxy_pass.
Ещё одно возможное решение - параметризованные макросы при
парсинге конфига. Но и тут тоже не без недостатков, естественно.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru