haproxy non viene avviato

20

Installato un nuovo server Ubuntu 10.04 ed effettuando il login come root ho installato haproxy usando apt-get.

Posso eseguire haproxy direttamente come demone, ma quando faccio /etc/init.d/haproxy start non succede nulla ... nemmeno un messaggio di errore.

netstat -a mostra che nulla sta usando la porta http che sto cercando di bilanciare con haproxy ...

idee?

Modifica

  1. Ho notato che apt-get install haproxy lo dice alla fine:

    update-rc.d: warning: /etc/init.d/haproxy manca informazioni LSB update-rc.d: vedi link

  2. /etc/default/haproxy dice ENABLED=1

Debug dell'output per sh -xv /etc/init.d/haproxy start

#!/bin/sh
#
# chkconfig: - 85 15
# description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly suited \
#              for high availability environments.
# processname: haproxy
# config: /etc/haproxy.cfg
# pidfile: /var/run/haproxy.pid

# Source function library.
if [ -f /etc/init.d/functions ]; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 0
fi
+ [ -f /etc/init.d/functions ]
+ [ -f /etc/rc.d/init.d/functions ]
+ exit 0
root@li267-63:~#
    
posta Assaf Lavie 30.11.2010 - 19:48
fonte

9 risposte

39

Modifica /etc/default/haproxy e assicurati che abbia una riga che dice ENABLED=1 in essa.

L'impostazione predefinita è ENABLED = 0. Ciò avviene perché haproxy non ha una configurazione predefinita sana, quindi è necessario prima configurarlo, quindi abilitarlo.

    
risposta data SpamapS 30.11.2010 - 19:52
fonte
3

Ho riscontrato lo stesso problema, in cui l'impostazione ENABLED non ha avuto alcun effetto a causa del mancato funzionamento della riga "test". Trovato il motivo: devi modificare /etc/default/haproxy anziché lo script di init.

    
risposta data Justin Karneges 03.12.2011 - 22:46
fonte
3

Conosco questo thread di un anno .. ma sto solo cercando di condividere ciò che ho imparato ..

usa /etc/init.d/haproxy reload o service haproxy reload e ricaricherà bene .. dopotutto vogliamo solo che inizi a destra;)

    
risposta data cikgureza 06.12.2012 - 06:32
fonte
2

Ho un problema simile. Ho già impostato ENABLED = 1, ma la configurazione di default update-rc.d sembra essere quella di inserire haproxy in K20 (rc0 | 1 | 6.d) e in S20 (rc2 | 3 | 4 | 5.d). Il che significa che proverà ad avviarsi prima del networking, quindi nel mio caso lo trovo in boot.log: -

 * Starting haproxy haproxy                                                     [ALERT] 346/160552 (927) : Starting proxy haproxy: cannot bind socket
[ALERT] 346/160552 (927) : Starting proxy haproxy: cannot bind socket
[ALERT] 346/160552 (927) : Starting proxy haproxy: cannot bind socket
[ALERT] 346/160552 (927) : Starting proxy haproxy: cannot bind socket
[ALERT] 346/160552 (927) : Starting proxy haproxy: cannot bind socket
[ALERT] 346/160552 (927) : Starting proxy haproxy: cannot bind socket
[ALERT] 346/160552 (927) : Starting proxy haproxy: cannot bind socket
                                                                         [fail]

cambiare il numero di avvio in 35 sembra risolverlo, ma penso che 36 sarebbe più sicuro (il vecchio numero per il networking era 35, quindi è meglio iniziare subito dopo). Quindi prova: -

update-rc.d -f haproxy remove
update-rc.d haproxy start 35 2 3 4 5 . stop 20 0 1 6 .

Quindi riavvia, e dovrebbe ordinarlo. I manutentori dei pacchetti avrebbero dovuto pensarci davvero.

    
risposta data SiBaz 13.12.2010 - 17:17
fonte
2

Mi sono imbattuto in questo stesso problema dopo aver installato il pacchetto ubuntu mantenuto e poi (dopo aver realizzato che la versione non supportava la funzionalità necessaria) Installazione di una versione ppa più recente di haproxy. Lo script init.d che ho terminato con puntato a / usr / sbin / haproxy quando in realtà il mio eseguibile era in / usr / local / sbin / haproxy. l'output di debug "sh -xv /etc/init.d/haproxy start" menzionato in precedenza ha reso questo problema abbastanza ovvio.

    
risposta data grendal_prime 03.05.2012 - 17:29
fonte
2

Hai provato ad avviarlo come root, o con sudo? Se sei come me, a volte dimentichi di aggiungere sudo all'inizio dei comandi. Ho provato tutti i tuoi comandi senza sudo, e hanno fallito come hai descritto. Tuttavia, con sudo davanti a loro, utilizzando un file haproxy.cfg predefinito da installare, ora funziona senza problemi. Ho solo pensato che avrei indicato che anche con le configurazioni corrette, per me non andrebbe senza sudo.

    
risposta data John Doe 17.08.2011 - 19:51
fonte
1

Ho appena incontrato lo stesso problema con lo script init.d haxy su lucido. Semplicemente non ho potuto avviare haproxy, quindi ho cercato e ho scoperto che dovevi cambiare la variabile ENABLED nello script /etc/init.d/haproxy.

Cambiare questa variabile tuttavia NON ha aiutato affatto ed è per questo che: Alcune righe più in basso in /etc/init.d/haproxy la variabile ENABLED è controllata dallo script con la seguente riga: test "$ ENABLED"!="0" || exit 0. Ho notato che questo test avrebbe SEMPRE esito negativo sul mio sistema, non importa quale sia il valore di ENABLED. Quindi il resto dello script non viene mai eseguito.

Devo ammettere che non so davvero perché questa linea di test non funzioni correttamente. Ma dal momento che vogliamo comunque abilitare haproxy, perché preoccuparsi di controllare? ... Commentare questa linea di test ha funzionato per me.

Spero che questo aiuti chiunque.

    
risposta data user9189 19.01.2011 - 10:44
fonte
0

Ho anche continuato a guardare lo scipt, non ho visto perché non funzionava nonostante il ENABLED=1 definito all'interno dello script di init.

Alla fine, dopo aver osservato un po ', vedrai che /etc/default/haproxy-file è originario appena prima dell'esecuzione del test, sovrascrivendo così la variabile-set nello script init stesso ...

    
risposta data ussr 09.08.2013 - 17:37
fonte
0

Si è imbattuto nello stesso problema in azzurro con un debian vm. Risulta essere abbastanza semplice. Lo script di init di haproxy usa dipendenze di run-time. Sul vecchio sistema update-rc.d era la strada da percorrere, ma sul sistema più recente si utilizzava insserv: link

Quindi, se hai usato update-rc.d per aggiungere il servizio haproxy sui sistemi più recenti, dovresti fare:

$ sudo update-rc.d -f haproxy remove

$ sudo insserv haproxy

    
risposta data Olivier de Jong 04.05.2015 - 21:06
fonte

Leggi altre domande sui tag