haproxy non si avvia


20

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

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

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

Idee?

modificare

  1. Ho notato che apt-get install haproxyalla fine questo dice:

    update-rc.d: avviso: /etc/init.d/haproxy informazioni LSB mancanti update-rc.d: consultare http://wiki.debian.org/LSBInitScripts

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

Uscita di debug 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:~#

Puoi provare a eseguire il debug dello script di avvio con: sh -xv /etc/init.d/haproxy start
João Pinto,

Risposte:


39

Modifica /etc/default/haproxye assicurati che contenga una riga ENABLED=1.

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


Ho impostato ENABLED = 1, ancora niente ..
Assaf Lavie,

Assaf, devi ancora configurare haproxy. Se il file di configurazione non è corretto, non si avvierà e probabilmente ha errori di stampa nei registri di sistema (controlla /var/log/daemon.log e / var / log / syslog)
SpamapS

2
Perché non si avvia senza alcun messaggio dettagliato? È davvero confuso!
Nikolay Fominyh,

1
@NikolayFominyh Sono d'accordo, questo è confuso! Alla fine trovo questo thread più e più volte perché ogni 8 mesi circa devo impostare un nuovo haproxy e dimentico sempre il requisito di abilitare i servizi in / etc / default / *. Vorrei che qualcosa comparisse nel syslog quando provi ad avviare un servizio disabilitato.
Jay Taylor,

3

Ho avuto lo stesso problema, in cui l'impostazione ABILITATA non ha avuto effetto a causa del fallimento della riga "test". Trovato il motivo: devi modificare /etc/default/haproxyinvece dello script init.


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 reloade si ricaricherà bene .. dopotutto vogliamo solo che inizi correttamente;)


2

Ho un problema simile. Ho già impostato ENABLED = 1, ma la configurazione di update-rc.d predefinita sembra essere quella di inserire l'aproxy in K20 (rc0 | 1 | 6.d) e in S20 (rc2 | 3 | 4 | 5.d). Ciò significa che proverà ad avviarsi prima della rete, quindi nel mio caso ottengo questo in boot.log: -

 * Avvio haproxy haproxy [ALERT] 346/160552 (927): Avvio haproxy proxy: impossibile associare socket
[ALERT] 346/160552 (927): Avvio del proxy haproxy: impossibile associare il socket
[ALERT] 346/160552 (927): Avvio del proxy haproxy: impossibile associare il socket
[ALERT] 346/160552 (927): Avvio del proxy haproxy: impossibile associare il socket
[ALERT] 346/160552 (927): Avvio del proxy haproxy: impossibile associare il socket
[ALERT] 346/160552 (927): Avvio del proxy haproxy: impossibile associare il socket
[ALERT] 346/160552 (927): Avvio del proxy haproxy: impossibile associare il socket
                                                                         [fallire]

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 farlo iniziare dopo). Allora prova:-

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

Quindi riavviare e dovrebbe ordinarlo. I manutentori del pacchetto avrebbero dovuto davvero pensarci.


SiBaz, non sono sicuro di quale versione di Ubuntu stai utilizzando, ma in Lucid, il sistema su cui si poneva la domanda, la rete si avvia tramite avvio prima che rc-sysinit passi al runlevel predefinito (2), che è ciò che esegue il file / etc / rc2 .d script.
SpamapS,

Sto usando anche lucido e posso assicurarti che la rete non è stata avviata quando haproxy è stato avviato tramite rc2.d /../ init.d / haproxy. Ho anche notato che, ciò che ho suggerito non ha funzionato, quindi ho dovuto aggiungere la rete ai livelli rc 2 3 4 5 per iniziare prima di haproxy, avviare la rete update-rc.d 35 2 3 4 5. Mi rendo conto che è un hack, poiché la soluzione sarebbe quella di aggiungere uno script upstart. Ho creato un bug sul pacchetto haproxy su lucid in tal senso.

2

Mi sono imbattuto in questo stesso problema dopo aver prima installato il pacchetto mantenuto Ubuntu e poi (dopo aver realizzato che la versione non supportava la funzione di cui avevo bisogno) Installazione di una versione più recente di haproxy di ppa. Lo script init.d che ho chiuso indicava / 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 rendeva questo problema abbastanza ovvio.


Vorrei votare questo almeno due volte.
Balázs Németh

2

Hai provato ad avviarlo come root o con sudo? Se sei come me, a volte ti dimentichi di aggiungere sudo nella parte anteriore dei comandi. Ho provato tutti i tuoi comandi senza sudo, e hanno fallito come hai descritto. Tuttavia, con sudo davanti a loro, usando un haproxy.cfgfile predefinito dall'installazione, ora è in esecuzione senza problemi. Pensavo solo che avrei indicato che anche con le configurazioni corrette, per me non andrà senza sudo.


:) sì, fatto come root
Assaf Lavie il

1

Ho appena riscontrato lo stesso problema con lo script haproxy init.d su lucid. Semplicemente non sono riuscito a far partire haproxy, quindi l'ho cercato e ho scoperto che dovevi cambiare la variabile ENABLED nello script /etc/init.d/haproxy.

La modifica di questa variabile tuttavia NON ha aiutato affatto ed è per questo che: Alcune righe più in basso in /etc/init.d/haproxy la variabile ENABLED viene controllata dallo script con la seguente riga: test "$ ENABLED"! = "0" || uscita 0. Ho notato che questo test fallirebbe SEMPRE sul mio sistema, non è certo quale sia il valore di ABILITATO. 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 abilitare il haproxy, perché preoccuparsi di controllare? ... Commentare questa linea di test ha funzionato per me.

Spero che questo aiuti chiunque.


Penso che dovresti quindi impostare il flag abilitato in / etc / default / haproxy
UpTheCreek

0

Continuavo anche a fissare lo scipt, non riuscivo a capire perché non funzionasse nonostante fosse ENABLED=1definito nello script di init.

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


0

Si è imbattuto nello stesso problema su azzurro con un debian vm. Risulta essere abbastanza semplice. Lo script init di haproxy utilizza dipendenze di runtime. Sul vecchio sistema update-rc.d era la strada da percorrere, ma sul sistema più recente viene utilizzato insserv: https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

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

$ sudo update-rc.d -f haproxy rimuovi

$ sudo insserv haproxy

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.