haproxy ne démarre pas

20

Installation d'un nouveau serveur Ubuntu 10.04 et connexion en tant que root J'ai installé haproxy en utilisant apt-get.

Je peux exécuter haproxy directement en tant que démon mais quand je ne fais /etc/init.d/haproxy startrien, il ne se passe même pas un message d'erreur.

netstat -a montre que rien n'utilise le port http que j'essaie d'équilibrer avec haproxy ...

Des idées?

modifier

  1. J'ai remarqué que apt-get install haproxycela dit à la fin:

    update-rc.d: avertissement: /etc/init.d/haproxy informations LSB manquantes update-rc.d: voir http://wiki.debian.org/LSBInitScripts

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

Sortie de débogage pour 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:~#
Assaf Lavie
la source
Vous pouvez essayer de déboguer le script de démarrage avec: sh -xv /etc/init.d/haproxy start
João Pinto

Réponses:

39

Modifiez /etc/default/haproxyet assurez-vous qu'il a une ligne qui dit ENABLED=1en elle.

La valeur par défaut est ENABLED = 0. Cela est dû au fait que haproxy n'a pas de configuration par défaut saine, vous devez donc d'abord le configurer, puis l'activer.

SpamapS
la source
J'ai mis ENABLED = 1, toujours rien ..
Assaf Lavie
Assaf, vous devez toujours configurer haproxy. Si le fichier de configuration n'est pas correct, il ne démarre pas et a probablement imprimé des erreurs dans les journaux système (vérifiez /var/log/daemon.log et / var / log / syslog)
SpamapS
2
Pourquoi cela ne commence-t-il pas sans message verbeux? C'est vraiment déroutant!
Nikolay Fominyh
1
@NikolayFominyh Je suis d'accord, c'est déroutant! Je trouve finalement ce fil encore et encore parce que tous les 8 mois environ, je dois configurer un nouveau haproxy et j'oublie toujours la nécessité d'activer les services dans / etc / default / *. Je souhaite que quelque chose apparaisse dans le syslog lorsque vous essayez de démarrer un service désactivé.
Jay Taylor
3

J'ai eu le même problème, où le réglage ENABLED n'avait aucun effet car la ligne "test" échouait toujours. Trouvé la raison: vous devez éditer /etc/default/haproxyau lieu du script init.

Justin Karneges
la source
3

Je sais que c'est un fil d'un an .. mais j'essaie juste de partager ce que j'ai appris ..

utilisez /etc/init.d/haproxy reload ou service haproxy reloadet il se rechargera bien .. après tout, nous voulons juste qu'il démarre bien;)

cikgureza
la source
2

J'ai le même problème. J'ai déjà défini ENABLED = 1, mais la configuration par défaut de update-rc.d semble être de mettre l'haproxy en K20 (rc0 | 1 | 6.d) et en S20 (rc2 | 3 | 4 | 5.d). Ce qui signifie qu'il va essayer de démarrer avant la mise en réseau, donc dans mon cas, j'obtiens ceci dans boot.log: -

 * Démarrage de haproxy haproxy [ALERTE] 346/160552 (927): Démarrage de proxy haproxy: impossible de lier le socket
[ALERTE] 346/160552 (927): Démarrage du proxy haproxy: impossible de lier le socket
[ALERTE] 346/160552 (927): Démarrage du proxy haproxy: impossible de lier le socket
[ALERTE] 346/160552 (927): Démarrage du proxy haproxy: impossible de lier le socket
[ALERTE] 346/160552 (927): Démarrage du proxy haproxy: impossible de lier le socket
[ALERTE] 346/160552 (927): Démarrage du proxy haproxy: impossible de lier le socket
[ALERTE] 346/160552 (927): Démarrage du proxy haproxy: impossible de lier le socket
                                                                         [échouer]

changer le numéro de démarrage en 35 semble le corriger, mais je pense que 36 serait plus sûr (l'ancien numéro pour la mise en réseau était 35, alors faites-le mieux commencer après cela). Alors essayez: -

update-rc.d -f haproxy supprimer
update-rc.d haproxy start 35 2 3 4 5. arrêter 20 0 1 6.

Redémarrez ensuite, et il devrait le trier. Les responsables de paquets auraient vraiment dû y penser.


la source
SiBaz, vous ne savez pas quelle version d'Ubuntu vous utilisez, mais dans Lucid, le système sur lequel portait la question, la mise en réseau démarre via upstart avant que rc-sysinit ne passe au niveau d'exécution par défaut (2), qui exécute / etc / rc2 Scripts .d.
SpamapS
J'utilise également lucid, et je peux vous assurer que la mise en réseau n'avait pas commencé lorsque haproxy a été lancé via rc2.d /../ init.d / haproxy. J'ai également remarqué que ce que je suggérais ne fonctionnait pas, j'ai donc dû ajouter la mise en réseau aux niveaux rc 2 3 4 5 pour commencer avant haproxy, mise à jour du réseau update-rc.d 35 2 3 4 5. Je réalise que c'est un pirater, car la solution serait d'ajouter un script parvenu. J'ai créé un bug contre le package haproxy sur lucid à ​​cet effet.
2

J'ai rencontré ce même problème après avoir d'abord installé le package maintenu ubuntu, puis (après avoir réalisé que la version ne supportait pas la fonctionnalité dont j'avais besoin), installer une version ppa plus récente de haproxy. Le script init.d avec lequel je me suis retrouvé indiquait / usr / sbin / haproxy alors qu'en fait mon exécutable se trouvait dans / usr / local / sbin / haproxy. la sortie de débogage "sh -xv /etc/init.d/haproxy start" mentionnée précédemment a rendu ce problème assez évident.

grendal_prime
la source
Je voudrais voter cela au moins deux fois.
Balázs Németh
2

Avez-vous essayé de le démarrer en tant que root, ou avec sudo? Si vous êtes comme moi, vous oubliez parfois d'ajouter sudo au début des commandes. J'ai essayé toutes vos commandes sans sudo, et elles ont échoué comme vous l'avez décrit. Cependant, avec sudo devant eux, en utilisant un haproxy.cfgfichier par défaut de l'installation, il fonctionne maintenant sans problème. Je pensais juste que je soulignerais que même avec les bonnes configurations, pour moi cela ne se fera pas sans sudo.

John Doe
la source
:) oui, fait en tant que root
Assaf Lavie
1

Je viens de rencontrer le même problème avec le script haproxy init.d sur lucid. Je ne pouvais tout simplement pas lancer haproxy, alors je l'ai recherché et j'ai trouvé que vous deviez changer la variable ENABLED dans le script /etc/init.d/haproxy.

Changer cette variable n'a cependant PAS aidé du tout et c'est pourquoi: Quelques lignes plus bas dans /etc/init.d/haproxy la variable ENABLED est vérifiée par le script avec la ligne suivante: test "$ ENABLED"! = "0" || exit 0. J'ai remarqué que ce test échouait TOUJOURS sur mon système, quelle que soit la valeur de ENABLED. Ainsi, le reste du script n'est jamais exécuté.

Je dois admettre que je ne sais pas vraiment pourquoi cette ligne de test ne fonctionne pas correctement. Mais comme nous voulons que le haproxy soit activé de toute façon, pourquoi prendre la peine de vérifier? ... Commenter cette ligne de test l'a fait fonctionner pour moi.

J'espère que cela aide n'importe qui.


la source
Je pense que vous êtes censé donc définir le drapeau activé dans / etc / default / haproxy
UpTheCreek
0

J'ai également continué à regarder le scipt, je ne voyais pas pourquoi cela ne fonctionnait pas malgré la ENABLED=1définition dans le script d'initialisation.

Finalement, après avoir regardé un peu vers le bas, vous verrez que le /etc/default/haproxy-fileest originaire juste avant que le test soit effectué, écrasant ainsi la variable set dans le script init lui-même ...

URSS
la source
0

Ran dans le même problème sur azur avec un debian vm. Se révèle être assez simple. Le script init de haproxy utilise des dépendances au moment de l'exécution. Sur l'ancien système, update-rc.d était la voie à suivre, mais sur le système plus récent, l'insserv est utilisé: https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

Donc, si vous avez utilisé update-rc.d pour ajouter le service haproxy sur les systèmes plus récents, vous devez faire:

$ sudo update-rc.d -f haproxy supprimer

$ sudo insserv haproxy

Olivier de Jong
la source