Hej Luca!
On 16.11.2012 22:07, Luca Bertoncello wrote:
Hallo, Leute!
Ich habe ein Template für VirtualHost angefertigt, das mithilfe von Perl die Apache-Konfiguration von einer Datenbank erstellt.
Das Ding funktioniert wie gewünscht und ich wäre auch schon zufrieden.
Nun, wenn jemand einen neuen VirtualHost anlegt, muss er nicht nur in die Datenbank die Daten eintragen, sondern auch ein apache2ctl reload ausführen.
Verstehe ich das recht: es gibt 1 DB-Server und n Apachen?
Vorschlag sofern n nicht dreistellig oder größer ist: Es gibt eine Config-Tabelle mit einem Eintrag current_revision. Wann immer ein neuer Virtual Host in der DB vermerkt wird, wird current_revision atomar um eins inkrementiert.
Auf den Rechnern mit Apachen läuft ein cron-Skript, das im Minuten-Takt (oder welcher Takt bei dir sinnvoll ist) die current_revision von der DB abfragt und mit der running_revision (liegt in einer Textdatei auf dem betreffenden Server) vergleicht. Bei Unterschied schiebt das Skript die Generierung der httpd.conf an und SIGHUP't den Apachen.
Sicherstellen, dass das aktuell laufende Cron-Skript das einzige ist und sich nicht mit einem Verwandten von vor einer Minute überschreibt, der grad länger braucht.
Beste Grüße Fabian