Loadbalancer je nach Verfügbarkeit (Steckdose vs. Service)

Alles, was den Apache betrifft, kann hier besprochen werden.

Loadbalancer je nach Verfügbarkeit (Steckdose vs. Service)

Postby kossmann » 21. December 2021 10:49

Hallo zusammen,

ich habe auf einem Server einen Apache, den ich als ReverseProxy für diverse andere Dienste/Server/VirtualHosts nutze. Nun habe ich einen weiteren Service, denn ich dort gerne einbinden möchte - allerdings ist dieser nicht immer verfügbar, sondern kann über eine vorgeschaltete (smarte) Steckdose eingeschaltet werden.

Da ich den Arbeitsschritt "Steckdose einschalten" gerne bei Bedarf automatisieren würde, habe ich folgende Idee:

Im Browser rufe ich den entsprechenden VirtualHost auf. Der Apache prüft, ob der eigentlich anzusprechende Dienst verfügbar ist und leitet als ReverseProxy dort hin weiter. Ist der Dienst nicht verfügbar, wird auf eine lokale PHP-Datei weitergeleitet, mit der man per Klick die Steckdose einschalten kann und wird dann nach einer Wartezeit auf den eigentlich anzusprechenden Dienst weiter geleitet.

Hat da jemand eine Idee, wie ich das realisieren kann? Im Bereich "Apache als Loadbalancer (je nach Verfügbarkeit)" bin ich leider noch etwas blank.
kossmann
 
Posts: 2
Joined: 21. December 2021 10:39
Operating System: Debian 10

Re: Loadbalancer je nach Verfügbarkeit (Steckdose vs. Servic

Postby Nobbie » 21. December 2021 19:09

Das hat mit Loadbalancer wenig zu tun. Ich kenne keine Apache API oder Modul, welches die "Verfügbarkeit" eines Server überprüft. Wenn der Server nicht erreichbar ist, gibt es einen TCPIP Timeout. Das ist ein anderes Layer als HTTP.
Nobbie
 
Posts: 13176
Joined: 09. March 2008 13:04

Re: Loadbalancer je nach Verfügbarkeit (Steckdose vs. Servic

Postby kossmann » 21. December 2021 19:57

Richtig, mit LoadBalancing im eigentliche Sinn hat dies wenig zu tun, allerdings gibt es ja Teilbereiche die man da nutzen kann. Konkret bin ich da heute Nachmittag noch auf "Heartbeat" als lbMode gestoßen. Hier bin ich aber noch nicht weit gekommen.

Momentan habe ich es "als Schnellschuss" so gelöst, dass ich 2 BalanceMember habe - als ersten (priorisierten) die lokale PHP-Datei (diese ist vom ProxyPass ausgeschlossen), die mit dem Parameter status=+H auf Hot-Standy gesetzt ist. Der zweite Member ist der eigentliche Dienst, welcher dann aktiv ist, wenn er erreichbar ist. Sollte er nicht erreichbar sein, wird das Hot-Standby vom Apache automatisch aufgehoben und die PHP-Seite ausgeliefert.

Diese "Lösung" hat allerdings die unschönen Eigenschaften, dass ich bei jedem Aufruf, bei dem der Dienst nicht erreichbar ist, einen Fehler im Logfile habe (Dienst nicht erreichbar) und zum anderen wird der BalanceMember des eigentlichen Dienstes für 60 Sekunden inaktiv gesetzt. Letzteres kann man sicher noch konfigurieren, aber es bleibt als Lösung insgesamt nicht optimal.

Ich muss mir das mit dem Heartbeat mal näher ansehen, aber ggf. hat hier ja jemand ein Beispiel!?
kossmann
 
Posts: 2
Joined: 21. December 2021 10:39
Operating System: Debian 10


Return to Apache

Who is online

Users browsing this forum: No registered users and 133 guests