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
nichts tue , passiert nicht einmal eine Fehlermeldung.
netstat -a
zeigt an, dass nichts den http-Port verwendet, den ich mit haproxy ausgleichen möchte ...
Ideen?
Bearbeiten
Mir ist aufgefallen,
apt-get install haproxy
dass dies am Ende sagt:update-rc.d: Warnung: /etc/init.d/haproxy fehlende LSB-Informationen. update-rc.d: Siehe http://wiki.debian.org/LSBInitScripts
/etc/default/haproxy
sagtENABLED=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
root@li267-63:~#
Antworten:
Bearbeiten
/etc/default/haproxy
und stellen Sie sicher, dass eine Zeile mit der Aufschrift vorhandenENABLED=1
ist.Der Standardwert ist ENABLED = 0. Dies geschieht, weil haproxy keine vernünftige Standardkonfiguration hat. Sie müssen es also zuerst konfigurieren und dann aktivieren.
quelle
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 .quelle
Ich kenne diesen einjährigen Thread, aber ich versuche nur zu teilen, was ich gelernt habe.
benutze
/etc/init.d/haproxy reload
oderservice haproxy reload
und es wird wieder geladen .. immerhin wollen wir nur, dass es richtig startet;)quelle
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:
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:-
Starten Sie dann neu und es sollte es sortieren. Die Paketbetreuer hätten wirklich darüber nachdenken sollen.
quelle
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.
quelle
Haben Sie versucht, es als root oder mit sudo zu starten? Wenn Sie wie ich sind, vergessen Sie manchmal, vor den Befehlen sudo 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
aus der Installation verwendet, wird es jetzt ohne Probleme ausgeführt. Ich dachte nur, ich würde darauf hinweisen, dass es auch mit den richtigen Einstellungen für mich nicht ohne sudo geht.quelle
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 habe festgestellt, 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.
quelle
Ich starrte auch weiter auf das Skript, konnte nicht erkennen, warum es trotz der
ENABLED=1
im Init-Skript definierten Fehler nicht funktionierte .Nachdem Sie ein wenig nach unten geschaut haben, werden Sie feststellen, dass die
/etc/default/haproxy-file
Quelle unmittelbar vor dem Test ausgewählt wurde, wodurch die Set-Variable im Init-Skript selbst überschrieben wird.quelle
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
quelle