example español haproxy

español - haproxy documentation



¿Puedo dividir un archivo de configuración grande de HAProxy en varios archivos más pequeños? (4)

Encontré esta respuesta donde el author creó guiones para imitar la funcionalidad de habilitación de sitios de nginx enable. En el inicio de haproxy init.d, utiliza un bucle de script para construir la concatenación de los comandos haproxy -f.

/etc/init.d/haproxy:

EXTRAOPTS=`for FILE in /`find /etc/haproxy/sites-enabled -type l | sort -n/`; do CONFIGS="$CONFIGS -f $FILE"; done; echo $CONFIGS`

guión haensite :

#!/bin/bash if [[ $EUID -ne 0 ]]; then echo "You must be a root user" 2>&1 exit 1 fi if [ $# -lt 1 ]; then echo "Invalid number of arguments" exit 1 fi echo "Enabling $1..." cd /etc/haproxy/sites-enabled ln -s ../sites-available/$1 ./ echo "To activate the new configuration, you need to run:" echo " /etc/init.d/haproxy restart"

hadissite script:

#!/bin/bash if [[ $EUID -ne 0 ]]; then echo "You must be a root user" 2>&1 exit 1 fi if [ $# -lt 1 ]; then echo "Invalid number of arguments" exit 1 fi echo "Disabling $1..." rm -f /etc/haproxy/sites-enabled/$1 echo "To activate the new configuration, you need to run:" echo " /etc/init.d/haproxy restart"

Estoy creando un archivo de configuración de haproxy que tiene varios front y backends. Tendrá varios cientos de líneas y prefiero dividirlo en archivos separados para cada uno de los diferentes sitios web en los que quiero cargar el equilibrio.

¿HAProxy ofrece la posibilidad de vincular a archivos de configuración parciales del archivo principal haproxy.cfg?


Esta fue una solución basada en la respuesta de @ stephenmurdoch que involucró el uso de múltiples argumentos -f <conf file> para el ejecutable de haproxy .

Usando la secuencia de comandos incluida /etc/init.d/haproxy CentOS 6.x RPM, puede corregirlo así:

start() { $exec -c -q -f $cfgfile $OPTIONS if [ $? -ne 0 ]; then echo "Errors in configuration file, check with $prog check." return 1 fi echo -n $"Starting $prog: " # start it up here, usually something like "daemon $exec" #daemon $exec -D -f $cfgfile -f /etc/haproxy/haproxy_ds.cfg -f /etc/haproxy/haproxy_es.cfg -f /etc/haproxy/haproxy_stats.cfg -p $pidfile $OPTIONS daemon $exec -D -f $cfgfile $(for i in /etc/haproxy/haproxy_*.cfg;do echo -n "-f $i ";done) -p $pidfile $OPTIONS retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval }

Con lo anterior en su lugar, puede crear archivos como haproxy_<X>.cfg y haproxy_<Y>.cfg utilizando los nombres que desee. El bucle for anterior incluirá estos archivos en una línea de daemon haproxy ... aumentada daemon haproxy ... si estos archivos están presentes, de lo contrario, el archivo haproxy.cfg se usará únicamente.

Dentro de los archivos haproxy_<...>.cfg , debe asegurarse de que sus valores globales y predeterminados estén definidos en el archivo haproxy.cfg "nivel haproxy.cfg ". El resto de los archivos simplemente necesitan tener frontend / backends y nada más.


Los archivos de configuración no se pueden vincular desde una directiva de configuración.

Sin embargo, HAProxy puede cargar múltiples archivos de configuración desde su línea de comando, usando el interruptor -f varias veces:

haproxy -f conf/http-defaults -f conf/http-listeners -f conf/tcp-defaults -f conf/tcp-listeners

Si desea ser flexible con la cantidad de archivos de configuración, incluso puede especificar un directorio como este: -f /etc/haproxy . Los archivos se utilizarán en su orden léxico, y los archivos más nuevos anularán los archivos más antiguos. Consulte la lista de correo para ver un ejemplo, si proporciona enlaces a la documentación. Esta información se puede encontrar en la guía de administración, no en los documentos regulares.


Puedes seguir este sencillo paso.

  1. Inserte una secuencia de comandos de línea ( cat /etc/$BASENAME/conf.d/*.cfg > $CFG ) en /etc/init.d/haproxy
    Aquí está la posición donde debes insertar la línea.
    CFG=/etc/$BASENAME/$BASENAME.cfg cat /etc/$BASENAME/conf.d/*.cfg > $CFG [ -f $CFG ] || exit 1
  2. Recargar la configuración del daemon con systemctl daemon-reload
  3. Hacer directorio mkdir /etc/haproxy/conf.d
  4. Mueva el haproxy.cfg predeterminado a conf.d como global.cfg mv /etc/haproxy/haproxy.cfg /etc/haproxy/conf.d/global.cfg
  5. Cree su otro archivo .cfg en el directorio conf.d
  6. Simplemente reinicie su servicio haproxy systemctl restart haproxy
  7. NOTA: /etc/haproxy/haproxy.cfg creará automáticamente desde todos los archivos en conf.d /