it-swarm.com.de

Haproxy startet nicht

Installierte einen neuen Ubuntu 10.04 Server und loggte sich als root ein. Ich installierte haproxy mit apt-get.

Ich kann haproxy direkt als Daemon ausführen, aber wenn ich /etc/init.d/haproxy start tue, passiert nichts .. nicht einmal eine Fehlermeldung.

netstat -a zeigt an, dass der http-Port, den ich mit Haproxy ausgleichen möchte, nicht verwendet wird ...

Ideen?

Bearbeiten

  1. Mir ist aufgefallen, dass apt-get install haproxy am Ende Folgendes sagt:

    update-rc.d: Warnung: /etc/init.d/haproxy fehlende LSB-Informationen update-rc.d: Siehe http://wiki.debian.org/LSBInitScripts

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

Debugging-Ausgabe für 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
[email protected]:~#
20
Assaf Lavie

Bearbeiten Sie /etc/default/haproxy und stellen Sie sicher, dass in der Zeile ENABLED=1 steht.

Der Standardwert ist ENABLED = 0. Dies geschieht, weil haproxy keine vernünftige Standardkonfiguration hat. Sie müssen es also zuerst konfigurieren und dann aktivieren.

39
SpamapS

Ich hatte das gleiche Problem, bei dem die Einstellung AKTIVIERT keine Auswirkung hatte, da die Zeile "Test" immer fehlschlug. Fand den Grund: Sie müssen /etc/default/haproxy anstelle des Init-Skripts bearbeiten.

3
Justin Karneges

Ich kenne diesen einjährigen Thread, aber ich versuche nur zu teilen, was ich gelernt habe.

benutze /etc/init.d/haproxy reload oder service haproxy reload und es wird gut nachgeladen.

3
cikgureza

Ich bin auf dasselbe Problem gestoßen, nachdem ich zuerst das von Ubuntu gepflegte Paket installiert und dann (nachdem ich festgestellt habe, dass die Version die von mir benötigte Funktion nicht unterstützt hat) eine ppa-neuere Version von Haproxy installiert habe. Das init.d-Skript, mit dem ich endete, zeigte auf/usr/sbin/haproxy, obwohl sich meine ausführbare Datei in/usr/local/sbin/haproxy befand. Die zuvor erwähnte Debug-Ausgabe "sh -xv /etc/init.d/haproxy start" machte dieses Problem ziemlich offensichtlich.

2
grendal_prime

Ich habe ein ähnliches Problem. Ich habe bereits ENABLED = 1 gesetzt, aber die Standardkonfiguration von update-rc.d scheint darin zu bestehen, den Haproxy in K20 (rc0 | 1 | 6.d) und in S20 (rc2 | 3 | 4 | 5.d) zu setzen. Das heißt, es wird versucht, vor dem Netzwerkstart zu starten. In meinem Fall wird dies in boot.log angezeigt:

 * Starten von Haproxy Haproxy [ALERT] 346/160552 (927): Starten von Proxy Haproxy: Kann Socket nicht binden 
 [ALERT] 346/160552 (927): Starten von Proxy Haproxy: Kann Socket nicht binden 
 [ALERT] 346/160552 (927): Proxy-Haproxy wird gestartet: Socket kann nicht gebunden werden 
 [ALERT] 346/160552 (927): Proxy-Haproxy wird gestartet: Socket kann nicht gebunden werden 
 [ALERT] 346/160552 (927): Proxy-Haproxy wird gestartet: Socket kann nicht gebunden werden 
 [ALERT] 346/160552 (927): Proxy-Haproxy wird gestartet: Socket kann nicht gebunden werden 
 [ALERT] 346/160552 (927) : Proxy-Haproxy wird gestartet: Socket kann nicht gebunden werden 
 [Fehler] 

das Ändern der Startnummer auf 35 scheint das Problem zu beheben, aber ich denke, 36 wäre sicherer (die alte Nummer für die Vernetzung war 35, also starten Sie am besten danach). Also versuche:-

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

Starten Sie dann neu und es sollte es sortieren. Die Paketbetreuer hätten wirklich darüber nachdenken sollen.

2
SiBaz

Haben Sie versucht, es als root oder mit sudo zu starten? Wenn Sie wie ich sind, vergessen Sie manchmal, Sudo vor den Befehlen einzufügen. Ich habe alle Ihre Befehle ohne Sudo ausprobiert und sie sind fehlgeschlagen, wie Sie beschrieben haben. Da Sudo jedoch eine Standarddatei haproxy.cfg von der Installation verwendet, wird es jetzt ohne Probleme ausgeführt. Ich dachte nur, ich würde darauf hinweisen, dass es auch mit den richtigen Konfigurationen für mich nicht ohne Sudo geht.

2
John Doe

Ich bin gerade auf dasselbe Problem mit dem Skript haproxy init.d auf lucid gestoßen. Ich konnte Haproxy einfach nicht starten, also habe ich nachgeschlagen und festgestellt, dass Sie die Variable ENABLED im Skript /etc/init.d/haproxy ändern müssen.

Das Ändern dieser Variablen hat jedoch NICHT geholfen, und aus diesem Grund: Ein paar Zeilen tiefer in /etc/init.d/haproxy wird die Variable ENABLED vom Skript mit der folgenden Zeile überprüft: test "$ ENABLED"! = "0" || Beenden Sie 0. Ich bemerkte, dass dieser Test auf meinem System IMMER fehlschlagen würde, egal was der Wert von ENABLED ist. Der Rest des Skripts wird also nie ausgeführt.

Ich muss zugeben, dass ich nicht wirklich weiß, warum diese Testlinie nicht richtig funktioniert. Aber da wir wollen, dass Haproxy sowieso aktiviert ist, warum sollten wir uns die Mühe machen, es zu überprüfen? ... Das Auskommentieren dieser Testzeile hat für mich funktioniert.

Hoffe das hilft jedem.

1
user9189

Stieß auf das gleiche Problem in Azure mit einem Debian-VM. Es stellt sich als recht einfach heraus. Das Init-Skript von Haproxy verwendet Laufzeitabhängigkeiten. Auf älteren Systemen war update-rc.d der richtige Weg, aber auf neueren Systemen wird insserv verwendet: https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

Wenn Sie also update-rc.d verwendet haben, um den Haproxy-Dienst auf neueren Systemen hinzuzufügen, sollten Sie Folgendes tun:

$ Sudo update-rc.d -f haproxy entfernen

$ Sudo insserv haproxy

0
Olivier de Jong

Ich starrte auch weiter auf das Skript, konnte nicht erkennen, warum es trotz des im Init-Skript definierten ENABLED=1 nicht funktionierte.

Nachdem Sie ein wenig nach unten geschaut haben, werden Sie feststellen, dass /etc/default/haproxy-file direkt vor dem Test gefunden wurde, wodurch die Set-Variable im Init-Skript selbst überschrieben wird ...

0
ussr