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