proxy_bind, макросы и др

kpoxa kpoxa на kpoxa.net
Вт Ноя 17 13:43:27 UTC 2015


Добрый день.

proxy_bind в модуле stream не поддерживает работу с переменными, как и
proxy_pass, что хотелось бы иметь использовать, например для ав тестов,
определить переменную и через нее определять или куда отправлять коннект,
или с какого адреса, иногда для тестов этого хватает.

В конфигах nginx часто приходится повторять одинаковые куски конфига,
например выбор апстрима по локейшену, с настройках пропускаемых заголовков,
что порождает большие конфиги или такого вида:

location /one/ {
 proxy_pass http://one;
 proxy_set_header ...
 ....
 ....
 access_log one.log;
}

location /two/ {
 proxy_pass http://one;
 proxy_set_header ...
 ....
 ....
 access_log one.log;
}

или такого
location /one/ {
  include one.conf;
}
location /two/ {
  include one.conf;
}

первый вариант плохо читаемый в виду своей громосткости, второй из-за того,
что не видно, что записано во включаемом файле.


у меня есть два предложения, как можно синтаксически это реализовать по
другому, первый вариант это директива
location_list (
  /one/
  /two/
) {
 proxy_pass http://one;
 proxy_set_header ...
 ....
 ....
 access_log one.log;

}

второй это явная возможность вызова именованных локейшенов, например
location @one {
 proxy_pass http://one;
 proxy_set_header ...
 ....
 ....
 access_log one.log;
}
location /one/ {
  go @one;
}

location /two/ {
  go @one;
}


буду рад комментам и разумной критике :)
---
Рустам Нарманов.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20151117/37058452/attachment.html>


Подробная информация о списке рассылки nginx-ru