Instalé un nuevo servidor Ubuntu 10.04 e inicié sesión como root. Instalé haproxy usando apt-get.
Puedo ejecutar haproxy directamente como un demonio, pero cuando no hago /etc/init.d/haproxy start
nada, ni siquiera un mensaje de error.
netstat -a
muestra que nada está usando el puerto http que estoy tratando de equilibrar con haproxy ...
Ideas?
Editar
Me di cuenta de que
apt-get install haproxy
dice esto al final:update-rc.d: advertencia: /etc/init.d/haproxy falta información LSB update-rc.d: consulte http://wiki.debian.org/LSBInitScripts
/etc/default/haproxy
diceENABLED=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:~#
Respuestas:
Edite
/etc/default/haproxy
y asegúrese de que tenga una línea que digaENABLED=1
.El valor predeterminado es ENABLED = 0. Esto se hace porque haproxy no tiene una configuración predeterminada sensata, por lo que primero debe configurarlo y luego habilitarlo.
fuente
Tuve el mismo problema, donde establecer ENABLED no tuvo efecto debido a que la línea de "prueba" siempre fallaba. Encontró la razón: debe editar en
/etc/default/haproxy
lugar del guión de inicio.fuente
Sé que esto es un hilo de un año ... pero solo trato de compartir lo que he aprendido ...
use
/etc/init.d/haproxy reload
oservice haproxy reload
y se volverá a cargar bien ... después de todo, solo queremos que comience bien;)fuente
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á comenzar antes de la conexión en red, por lo que en mi caso obtengo esto en boot.log: -
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 creación de redes era 35, por lo que es mejor que comience después de eso). Entonces intente:
Luego reinicie, y debería ordenarlo. Los mantenedores de paquetes realmente deberían haber pensado en esto.
fuente
Me encontré con este mismo problema después de instalar primero el paquete mantenido de ubuntu y luego (después de darme cuenta de que la versión no admitía la función que necesitaba) Instalar una versión ppa más nueva de haproxy. El script init.d con el que terminé apuntaba a / usr / sbin / haproxy cuando de hecho 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 fuera bastante obvio.
fuente
¿Intentaste 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 describiste. Sin embargo, con sudo frente a ellos, utilizando un
haproxy.cfg
archivo predeterminado de instalación, ahora se ejecuta sin problemas. Solo pensé en señalar que incluso con las configuraciones correctas, para mí no funcionará sin sudo.fuente
Acabo de encontrar el mismo problema con el script haproxy init.d en lucid. Simplemente no pude iniciar el haproxy, 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ó en absoluto y esta es la razón: unas pocas líneas más abajo en /etc/init.d/haproxy, el script verifica la variable ENABLED con la siguiente línea: test "$ ENABLED"! = "0" || salida 0. Noté que esta prueba SIEMPRE fallará en mi sistema, sin importar cuál sea el valor de HABILITADO. Por lo tanto, el resto del script nunca se ejecuta.
Debo admitir que realmente no sé por qué esta línea de prueba no funciona correctamente. Pero como queremos que se habilite el haproxy de todos modos, ¿por qué molestarse en verificarlo? ... Al comentar esta línea de prueba, funcionó para mí.
Espero que esto ayude a cualquiera.
fuente
También seguí mirando el scipt, no podía ver por qué no funcionaba a pesar de lo
ENABLED=1
definido en el guión de inicio.Eventualmente, después de mirar un poco hacia abajo, verá que
/etc/default/haproxy-file
se obtiene justo antes de que se realice la prueba, sobrescribiendo así la variable set en el script de inicio ...fuente
Se encontró con el mismo problema en azul con un debian vm. Resulta ser bastante simple. El script de inicio de haproxy utiliza dependencias de tiempo de ejecución. En el sistema anterior, update-rc.d era el camino a seguir, pero en el sistema más nuevo se usa insserv: https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot
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 remove
$ sudo insserv haproxy
fuente