Я пытаюсь настроить систему балансировки нагрузки. В моем балансировщике нагрузки (nginx) есть файл conf, в котором я должен перечислить все IP-адреса вышестоящих серверов.
Я мог бы вручную указать IP-адреса в conf, но таким образом мне нужно было бы изменять файл conf каждый раз, когда я добавляю / удаляю вышестоящий сервер.
На данный момент у меня возникли две разные идеи, но ни одна из них мне не нравится:
1 - Сделайте так, чтобы каждая вышестоящая машина использовала Экспортированные ресурсы для создания файла с его IP. Тогда сервер балансировки нагрузки будет иметь "include conf_directory / *" и загружать все файлы, созданные вышестоящими серверами. Поскольку балансировщик нагрузки использует nginx, это можно сделать, но если я не буду позже настраивать что-то, что не имеет «include» в файлах conf, это решение не будет работать.
2 - Если конфигурация не поддерживает команду "include", то мы могли бы снова, каждый вышестоящий сервер использовать экспортированные ресурсы для создания файла со своим IP-адресом, а затем балансировщик нагрузки выполнит команду, которая выберет каждый файл и сгенерируйте конфигурацию
Обе версии добавляют один и тот же techinque, разница в том, что версия 2 используется, когда сервер (который должен иметь сгенерированный conf) не распознает команду типа "include" внутри своего собственного conf.
Теперь у меня вопрос, есть ли способ сделать это в другой форме? Я подозреваю, что есть, поскольку марионетка предназначена для управления несколькими серверами, кажется немного странным отсутствие простого способа настройки балансировщиков нагрузки.
РЕДАКТИРОВАТЬ: В конце концов, первое решение тоже не работает, потому что я не могу использовать директиву include внутри восходящего потока на nginx conf
Использовать Конкат Р.И. Пиенаара модуль. С его помощью вы можете экспортировать / собирать фрагменты файла конфигурации и объединять их на целевом объекте в один файл.