Назад | Перейти на главную страницу

Импортировать файлы конфигурации в haproxy.cfg

У меня почти 200 строк конфигураций ACL в haprox.cfg а также содержит 150 бэкэндов. Чтобы устранить эту сложность конфигурации, я хочу объединить эту конфигурацию в отдельные файлы и импортировать эти файлы в haprox.cfg. Возможно ли такое в haproxy?

Насколько мне известно, HAproxy не имеет ничего похожего на apache Include & IncludeOptional директивы.

Нет встроенной поддержки нескольких файлов конфигурации, кроме запуска HAproxy с повторением -f <config-file> переключатели командной строки. посмотреть эту ветку.

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

# Load additional configuration snippets from /etc/haproxy.d/*.cfg
OPTIONS=""
for file in /etc/haproxy.d/*.cfg ; do test -f $file && OPTIONS="$OPTIONS -f $file" ; done

start() {
  /usr/sbin/$BASENAME -c -q -f /etc/$BASENAME/$BASENAME.cfg $OPTIONS
  if [ $? -ne 0 ]; then
    echo "Errors found in configuration file, check it with '$BASENAME check'."
    return 1
  fi

  echo -n "Starting $BASENAME: "
  daemon /usr/sbin/$BASENAME -D -f /etc/$BASENAME/$BASENAME.cfg $OPTIONS -p /var/run/$BASENAME.pid
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$BASENAME
  return $RETVAL
}

Вы можете выполнить этот простой шаг.

  1. Вставить однострочный скрипт (cat /etc/$BASENAME/conf.d/*.cfg > $CFG) в /etc/init.d/haproxy
    Вот позиция, в которую вы должны вставить строку
    CFG=/etc/$BASENAME/$BASENAME.cfg cat /etc/$BASENAME/conf.d/*.cfg > $CFG [ -f $CFG ] || exit 1
  2. Перезагрузите конфигурацию демона с помощью systemctl daemon-reload
  3. Сделать каталог mkdir /etc/haproxy/conf.d
  4. Переместите по умолчанию haproxy.cfg в conf.d как global.cfg mv /etc/haproxy/haproxy.cfg /etc/haproxy/conf.d/global.cfg
  5. Создайте другой файл .cfg в каталоге conf.d
  6. Просто перезапустите службу haproxy systemctl restart haproxy
  7. НОТА: /etc/haproxy/haproxy.cfg будет автоматически создан из всех файлов в conf.d /