У меня почти 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
}
Вы можете выполнить этот простой шаг.
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
systemctl daemon-reload
mkdir /etc/haproxy/conf.d
mv /etc/haproxy/haproxy.cfg /etc/haproxy/conf.d/global.cfg
systemctl restart haproxy
/etc/haproxy/haproxy.cfg
будет автоматически создан из всех файлов в conf.d /