Frage

Ich habe eine Website auf einem Linux / Apache / Tomcat-Stack, die automatisch offline genommen werden muss, um alle paar Monate für die Server-Wartung, die eine beliebige Menge an Zeit dauern wird. Was sind einige Möglichkeiten für Apache immer eine „Server-Wartung“ Seite zu setzen, und nehmen Sie?

Ich muss in der Lage sein, dieses Skript über Shell zu steuern. (Die Antworten, die Google zur Verfügung gestellt drehen sich um die manuelle Bearbeitung die Serverkonfiguration, und ich will nicht, um 3 Uhr morgens im Büro sein!) Ich glaube, ich könnte das Skript Drop in einer .htaccess-Datei machen und es zu löschen, wenn es fertig ist, aber das scheint weniger als anmutig.


Antwort Kommentar:

Mikes Antwort sieht aus wie die Best-Practices zu beantworten, obwohl das, was ich tun werde wahrscheinlich eher wie Dan Antwort weil die Drittanbieter-Hosting-Anbieter des Load-Balancer steuert und ich will nicht mit diesem Schlamassel beschäftigen. Dank!

War es hilfreich?

Lösung

Wir haben ein Setup, das genau das tut, aber es enthält mehr als nur Apache. Es gibt einen Loadbalancer und zwei Server dahinter. Beide Web-Server dient Website Apache verwendet und einer von ihnen hat einen zusätzlichen virtuellen Hosts, die einfache HTML-Wartungsseite dient. Der Load Balancer hat einen virtuellen HTTP-Dienst, die Anfragen an reale Server umleitet. Dieser virtuelle Service hat drei realen Servern: zwei Ist-Server sind und die dritte ist eine virtuelle IP auf dem zweiten Server, der Wartungsseite verweist. Die realen Server werden gewichtet mit Dritt die ein möglichst geringes Gewicht aufweisen und der Load Balancer verwendet feste Gewichtungsalgorithmus. Also, wenn echte Websites offline gehen aus irgendeinem Grunde gehen alle Anforderungen an Wartung Host und Benutzer sehen die schöne Fehlerseite mit einer Telefonnummer. Tatsächlich verwende ich ein kleines Skript, um die Gesundheit von realen Servern zu überprüfen, um so bald die Wartung Seite angezeigt, da es keine Anzeichen von Schwierigkeiten.

PS. Ich benutze Lademeister 1500 für Loadbalancer.

Andere Tipps

Es ist ziemlich einfach, Apache mit einer benutzerdefinierten Konfigurationsdatei zu starten. Auf meinem System:

httpd -f <config>

Ich benutze diese regelmäßig in Kombination mit einem Shell-Skript eine eine extrem einfache Konfiguration als Wartungs Platzhalter. Das Skript einfach stoppt meine regelmäßigen Apache und startet diese.

2 Konfigurationsdateien machen und tauschen sie hin und her

Wenn nur ein wenig von der Datei ändert, kombinierte sich mit kommt eine Art Prä-Prozessor und erzeugt sowohl die Standard- und die „off-line“ -Versionen aus einer Hand und Swap zwischen diesen.

IIRC die Apache-Konfigurationsdateien ohnehin mit CPP sind bauen

Wir haben etwas ähnliches getan. Wir haben eine index.html, die auf unsere Website Seite umleitet. Wenn wir die Wartung haben führen wir ein Skript, das die Umleitung in der HTML-Datei ändert. Dann sind wir durch das Skript in cron und Viola automatische Wartungsfenster.

Ich hoffe, das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top