2009-06-01 3 views
2

Wir haben einige unabhängige Server, die hinter einem Hardware-Balancer angeschlossen sind. Auf jeder der Maschinen laufen Apache 2.2, Tomcat 5.0 und mod_proxy_ajp als Connector.Deaktivieren Sie die Apache 503-Antwort, wenn Tomcat herunterfährt.

Alles funktioniert gut, aber wenn Tomcat heruntergefahren wird, gibt Apache den Fehlercode 503 zurück (wie es zu erwarten ist, denke ich). Das Problem ist unser Load Balancer, der keine Fehlercodes interpretiert. Es denkt nur "Oh, Server an Maschine X hat -503 bla bla bla, was auch immer- auf meine Anfrage geantwortet, es scheint zu funktionieren, lasst uns weiter Leute zu diesem Server schicken".

Gibt es eine Möglichkeit, Apache zu sagen, in diesem Fall nichts zurückzugeben, anstelle des 503-Fehlers?

Antwort

1

Es ist nicht möglich. Ihr Anforderungsausgleicher ist fehlerhaft. Ersetze es.

Auch "dreistufig" bedeutet nicht "Balancer, Apache und Kater oben drauf". Balancer sollte direkt mit Tomcat kommunizieren und Apache den statischen Inhalt von einer separaten Domäne/Server bereitstellen lassen. Dies würde auch Ihr Problem sofort lösen.

Außerdem: gehört zu serverfault!

+1

hart. aber richtig. der Balancer ist falsch, nicht Apache. – nategood

+1

Ja, ich weiß, es ist scheiße. Ich wünschte, wir könnten es ersetzen ... aber wir können nicht. Die direkte Kommunikation zwischen Balancer und Tomcat sollte es lösen, wir werden es versuchen. Vielen Dank! – AJPerez

+0

@nategood: Ich weiß, es ist nicht Apache Schuld, es ist der Balancer. Aber vielleicht könnte Apache es trotzdem lösen :), wenn es möglich wäre, die Fehlerreaktion zu deaktivieren. – AJPerez

1

Ich habe das gleiche Problem. Für mich war der einfachste Weg, Apache einzurichten, um einen 404-Fehler zurückzugeben. Um die Auswuchterkonfiguration zu ändern, muss ich eine Anfrage an die Kommunikationsabteilung senden und auf die Antwort warten.