haproxy no se inicia

20

Instalé un nuevo servidor Ubuntu 10.04 e inicié sesión como root. Instalé haproxy usando apt-get.

Puedo ejecutar haproxy directamente como daemon, pero cuando lo hago /etc/init.d/haproxy start no pasa nada ... ni siquiera aparece un mensaje de error.

netstat -a muestra que nada está usando el puerto http que estoy tratando de equilibrar con haproxy ...

Ideas?

Editar

  1. Noté que apt-get install haproxy dice esto al final:

    update-rc.d: warning: /etc/init.d/haproxy información LSB faltante update-rc.d: consulta enlace

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

Salida de depuración 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:~#
    
pregunta Assaf Lavie 30.11.2010 - 18:48

9 respuestas

39

Edite /etc/default/haproxy y asegúrese de que tenga una línea que diga ENABLED=1 en él.

El valor predeterminado es ENABLED = 0. Esto se hace porque haproxy no tiene una configuración predeterminada de sana, por lo que primero debe configurarlo y luego habilitarlo.

    
respondido por el SpamapS 30.11.2010 - 18:52
3

Tuve el mismo problema, cuando el ajuste ENABLED no tuvo efecto debido a que la línea de "prueba" siempre falla. Encontré el motivo: tienes que editar /etc/default/haproxy en lugar de la secuencia de comandos de inicio.

    
respondido por el Justin Karneges 03.12.2011 - 21:46
3

Sé que este hilo tiene un año de antigüedad ... pero estoy tratando de compartir lo que aprendí ...

usa /etc/init.d/haproxy reload o service haproxy reload y se volverá a cargar bien ... después de todo, solo queremos que comience bien;)

    
respondido por el cikgureza 06.12.2012 - 05:32
2

Tengo un problema similar. Ya configuré ENABLED = 1, pero la configuración predeterminada de update-rc.d parece ser poner el haproxy en K20 (rc0 | 1 | 6.d) y en S20 (rc2 | 3 | 4 | 5.d). Lo que significa que intentará iniciarse antes de la conexión en red, por lo que en mi caso lo obtengo en 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]

cambiar el número de inicio a 35 parece solucionarlo, pero creo que 36 sería más seguro (el número anterior para la red era 35, así que lo mejor es que comience después de eso). Por lo tanto, intente: -

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

Luego, reinicie y debería ordenarlo. Los mantenedores del paquete realmente deberían haber pensado en esto.

    
respondido por el SiBaz 13.12.2010 - 16:17
2

Me encontré con este mismo problema después de instalar por primera vez el paquete ubuntu mantenido y luego (después de darme cuenta de que la versión no era compatible con la función que necesitaba) instalando una versión más nueva de ppa de haproxy. El script init.d con el que terminé señaló a / usr / sbin / haproxy cuando en realidad mi ejecutable estaba en / usr / local / sbin / haproxy. la salida de depuración "sh -xv /etc/init.d/haproxy start" mencionada anteriormente hizo que este problema sea bastante obvio.

    
respondido por el grendal_prime 03.05.2012 - 15:29
2

¿Intentó iniciarlo como root o con sudo? Si eres como yo, a veces olvidas agregar sudo al frente de los comandos. Probé todos tus comandos sin sudo, y fallaron como lo describiste. Sin embargo, con sudo delante de ellos, utilizando un archivo predeterminado haproxy.cfg desde la instalación, ahora se está ejecutando sin problemas. Solo pensé que señalaría que incluso con las configuraciones correctas, para mí no pasará sin sudo.

    
respondido por el John Doe 17.08.2011 - 17:51
1

Acabo de encontrar el mismo problema con el script haproxy init.d en lúcido. Simplemente no pude hacer que haproxy comenzara, así que lo busqué y descubrí que tenía que cambiar la variable ENABLED en el script /etc/init.d/haproxy.

Sin embargo, cambiar esta variable NO ayudó para nada y es por eso que: Unas líneas más abajo en /etc/init.d/haproxy la variable ENABLED se verifica mediante el script con la siguiente línea: test "$ ENABLED"!="0" || salida 0. Noté que esta prueba SIEMPRE fallaría en mi sistema, sin importar cuál sea el valor de ENABLED. Entonces, el resto del guión nunca se ejecuta.

Debo admitir que no sé realmente por qué esta línea de prueba no funciona correctamente. Pero dado que queremos que haproxy esté habilitado de todos modos, ¿por qué molestarse en comprobar? ... Comentar esta línea de prueba hizo que funcionase para mí.

Espero que esto ayude a cualquiera.

    
respondido por el user9189 19.01.2011 - 09:44
0

También seguí mirando el scipt, no podía ver por qué no funcionaba a pesar del ENABLED=1 definido en el guión de inicio.

Eventualmente, después de mirar un poco hacia abajo, verás que /etc/default/haproxy-file se obtiene justo antes de que se realice la prueba, sobrescribiendo así la variable set en el guión de inicio en sí ...

    
respondido por el ussr 09.08.2013 - 15:37
0

Se encontró con el mismo problema en azul con un debian vm. Resulta ser bastante simple. El script de inicio de haproxy usa dependencias de tiempo de ejecución. En el sistema anterior, update-rc.d era el camino a seguir, pero en el sistema más reciente se usa insserv: enlace

Entonces, si ha utilizado update-rc.d para agregar el servicio haproxy en sistemas más nuevos, debe hacer lo siguiente:

$ sudo update-rc.d -f haproxy eliminar

$ sudo insserv haproxy

    
respondido por el Olivier de Jong 04.05.2015 - 19:06

Lea otras preguntas en las etiquetas