haproxy não inicia

20

Instalado um novo servidor Ubuntu 10.04 e logando como root eu instalei o haproxy usando o apt-get.

Eu posso executar haproxy diretamente como um daemon, mas quando eu faço /etc/init.d/haproxy start nada acontece .. nem mesmo uma mensagem de erro.

netstat -a mostra que nada está usando a porta http que estou tentando equilibrar com o haproxy ...

Idéias?

Editar

  1. Percebi que apt-get install haproxy diz isso no final:

    update-rc.d: warning: /etc/init.d/haproxy faltando informações do LSB update-rc.d: veja link

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

Depuração de saída para 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:~#
    
por Assaf Lavie 30.11.2010 / 19:48

9 respostas

39

Edite /etc/default/haproxy e verifique se há uma linha que diz ENABLED=1 .

O padrão é ENABLED = 0. Isso é feito porque o haproxy não possui uma configuração padrão sensata, portanto, é necessário primeiro configurá-lo e ativá-lo.

    
por SpamapS 30.11.2010 / 19:52
3

Eu tive o mesmo problema, onde a configuração ENABLED não teve efeito porque a linha "test" sempre falhava. Descobriu o motivo: você precisa editar /etc/default/haproxy em vez do script de inicialização.

    
por Justin Karneges 03.12.2011 / 22:46
3

Eu conheço esse tópico de um ano ... mas estou tentando compartilhar o que aprendi ..

use /etc/init.d/haproxy reload ou service haproxy reload e ele será recarregado bem ... depois só queremos que ele comece corretamente;)

    
por cikgureza 06.12.2012 / 06:32
2

Eu tenho um problema semelhante. Eu já defini ENABLED = 1, mas o padrão update-rc.d config parece ser colocar o haproxy no K20 (rc0 | 1 | 6.d) e no S20 (rc2 | 3 | 4 | 5.d). O que significa que ele tentará iniciar antes da rede, então no meu caso eu recebo isso em 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]

mudar o número de inicialização para 35 parece consertá-lo, mas acho que 36 seria mais seguro (o número antigo de rede era 35, então é melhor começar depois disso). Então tente: -

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

Em seguida, reinicie e deve ordená-lo. Os mantenedores de pacotes deveriam ter pensado nisso.

    
por SiBaz 13.12.2010 / 17:17
2

Eu me deparei com esse mesmo problema depois de instalar o pacote mantido pelo Ubuntu e depois (depois de perceber que a versão não suportava o recurso que eu precisava) Instalando uma versão ppa mais recente do haproxy. O script init.d que acabei apontando para / usr / sbin / haproxy quando na verdade meu executável estava em / usr / local / sbin / haproxy. a saída de depuração "sh -xv /etc/init.d/haproxy start" mencionada anteriormente tornou esse problema bastante óbvio.

    
por grendal_prime 03.05.2012 / 17:29
2

Você tentou iniciá-lo como root ou com o sudo? Se você é como eu, às vezes se esquece de adicionar o sudo na frente dos comandos. Eu tentei todos os seus comandos sem sudo, e eles falharam como você descreveu. No entanto, com o sudo na frente deles, usando um arquivo haproxy.cfg padrão da instalação, ele está sendo executado sem problemas. Só pensei em apontar que, mesmo com as configurações corretas, para mim não vai ficar sem o sudo.

    
por John Doe 17.08.2011 / 19:51
1

Acabei de encontrar o mesmo problema com o script haproxy init.d no lucid. Eu simplesmente não consegui iniciar o haproxy, então procurei e descobri que você tinha que alterar a variável ENABLED no script /etc/init.d/haproxy.

Alterar essa variável, no entanto, NÃO ajudou em nada e é por isso: Algumas linhas inferiores em /etc/init.d/haproxy a variável ENABLED é verificada pelo script com a seguinte linha: test "$ ENABLED"!="0" || exit 0. Eu notei que este teste SEMPRE falharia no meu sistema, sem saber qual o valor de ENABLED. Então o resto do script nunca é executado.

Devo admitir que não sei realmente porque esta linha de teste não funciona corretamente. Mas como queremos que o haproxy seja ativado de qualquer forma, por que se preocupar em verificar? ... Comentar esta linha de teste fez com que funcionasse para mim.

Espero que isso ajude alguém.

    
por user9189 19.01.2011 / 10:44
0

Eu também continuei olhando para o scipt, não pude ver por que ele não estava funcionando apesar do ENABLED=1 definido no script init.

Eventualmente, depois de olhar um pouco para baixo, você verá que o /etc/default/haproxy-file é originado logo antes do teste ser executado, sobrescrevendo a variável set no próprio script init ...

    
por ussr 09.08.2013 / 17:37
0

Corri para o mesmo problema no azure com um debian vm. Acaba por ser bastante simples. O script de inicialização do haproxy usa dependências de tempo de execução. No antigo sistema update-rc.d era o caminho a percorrer, mas no novo sistema insserv é usado: link

Portanto, se você usou o update-rc.d para adicionar o serviço haproxy em sistemas mais recentes, faça:

$ sudo update-rc.d -f haproxy remove

$ sudo insserv haproxy

    
por Olivier de Jong 04.05.2015 / 21:06