2014-09-10 22 views

cevap

19

Yapılandırma dosyaları bir yapılandırma yönergesinden birlikte bağlanamaz.

Ancak HAProxy -f anahtarı birden çok kez kullanarak, kendi komut satırından birden çok yapılandırma dosyası yükleyebilirsiniz: Eğer yapılandırma dosyalarının miktarı ile esnek olmasını istiyorsanız

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

hatta böyle bir dizin belirtebilirsiniz : -f /etc/haproxy. Dosyalar daha sonra sözcüksel düzeninde, daha eski dosyalar eski dosyaları geçersiz kılacak. Belgelere bağlantılar sağlarsa, örnek için mailing list'a bakın. Bu bilgi yönetim kılavuzunda, normal dokümanlarda bulunamaz.

+0

Teşekkür ederim, kullanabileceğimi bilmek çok güzel! -f ' – stephenmurdoch

+1

haproxy -f conf/http-default -f conf/http-dinleyiciler -f conf/tcp-defaults -f conf/tcp-dinleyici – zx1986

7

authorauthor nginx'i devre dışı bırakmak için komut dosyaları oluşturuldu. Haproxy init.d başlangıcında, haproxy -f komutları birleştirme oluşturmak için komut dosyası döngüsü kullanır.

/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` 

haensite senaryo:

#!/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 senaryo:

#!/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" 
3

Bu, haproxy yürütülebilir dosyasına çoklu -f <conf file> argümanlarının kullanılmasını içeren @ stephenmurdoch'un yanıtının kapalı bir çözümüydü. Yukarıdaki ile

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 
} 

sonra ne istersen isimler kullanarak bu tür haproxy_<X>.cfg ve haproxy_<Y>.cfg gibi dosyaları oluşturabilirsiniz yerde: Stokta CentOS 6.x RPM bunu gibi değiştirebiliyor /etc/init.d/haproxy senaryoyu dahil kullanma

. Yukarıdaki dosyalar, bu dosyalar mevcutsa bir artırılmış daemon haproxy ... satırında içerecektir, aksi halde yalnızca haproxy.cfg dosyası kullanılacaktır.

haproxy_<...>.cfg dosyalarında, global ve varsayılanlarınızın "toplevel" haproxy.cfg dosyasında tanımlandığından emin olmanız gerekir. Dosyaların geri kalanının sadece ön uç/arka uçlara sahip olması ve başka bir şey yapması gerekmiyor.

İlgili konular