PHP Weiterleitung auf anderen Server falls dieser offline ist

van_haakonnen

Registered User
Hallo Leute,

also ich möchte folgendes machen:

Ich habe eine recht wichtige Homepage. Diese soll immer verfügbar sein. Deshalb habe ich also zwei Server. Jetzt brauche ich ein Script (das auf einem externen Webspace liegt) das an erster Stelle auf Server 1 weiterleitet. Wenn der Hauptserver 1 down ist, dann soll auf Server 2 weitergeleitet werden (auf diesem ist die Homepage komplett bis auf das Forum verfügbar).

Dazu habe ich folgende Datei die beim aufruf der Domain geöffnet wird:


PHP:
<?
$webhoster = "http://morbus-addison.de/homepage/index.html";
$heimrechner = "http://addison.v1551.vanager.de/";
$testfile = "online.txt";
$test=fopen ($heimrechner.$testfile,"r");
if($test) {
header("Location: $heimrechner");
} else {
header("Location: $webhoster");
}
?>

Dieses Script wurde von der C`t übernommen. In einem Heft hatten sie das mal abgedruckt. Nur leider funktioniert das irgendwie nicht. Ich habe schon alles was mir eingefallen ist ausprobiert:

Momentan liegt die Index.php natürlich nicht direkt bei der Domain. Sondern zum Ausprobieren hier: http://addison.v1551.vanager.de/EBAY/

Wenn die Datei "online.txt" jetzt auf dem Webspace verfügbar ist, dann wird auf den "http://addison.v1551.vanager.de/" weitergeleitet.

Wenn ich die Datei "online.txt" lösche um zu sehen ob korrekt auf Backup Webspace umgeleitet wird, dann erhalte ich folgendes:

PHP:
 Warning: fopen(http://addison.v1551.vanager.de/online.txt): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/www/web0/html/EBAY/index.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web0/html/EBAY/index.php:5) in /home/www/web0/html/EBAY/index.php on line 9

Aber danach habe ich noch eine Frage:

Der Hauptserver ist ein root-Server. Der Backup-server nur ein Webspace-Angebot.

Ist es möglich, die Datenbank vom root-server (also des hauptservers) automatisch einmal am Tag mit einer datenbank des backup-systems zu aktualisieren? Also dass auch theoretisch das forum auf dem backup-system bei einem ausfall genutzt werden kann?


Also erstmal vielen Dank für eure Ideen!

euer van_haakonnen
 
Entweder ein @ vor das fopen setzen oder Ausgabepufferung (ob_start() usw.) nutzen. Denn wenn PHP einen Fehler an den Client sendet, kannst du keine HTTP Header (Umleitung) mehr hinterhersenden...
 
Ah - perfekt. Ich bedanke mich bei dir! So funktioniert es ohne Probleme.

Aber ich bin mir gerade doch über ein Problem des ganzen klar geworden.

Das funktioniert ja nur wenn man direkt auf www.morbus-addison.de surft. Dann landet man auf der index.php die einen Umleitet. Wenn jetzt aber viele Leute in ihren Favoriten "www.morbus-addison.de/Forum/xxx.php" gespeichert haben, dann leitet da ja nichts mehr weiter...

Gibt es dafür eine Lösung?
 
Ne - das geht nicht sooo einfach.

Also folgendes Problem

die Domain www.morbus-addison.de liegt an sich auf einem einfach 300MB Webspace-Account (seit 5 Jahren noch nie ausgefallen). Dort soll sie bleiben und von dort aus weitergeleitet werden.

Nun stehen zwei weitere Root-Server zur Verfügung. Auf diese beiden soll weitergeleitet werden. An erster Stelle auf Server 1. Wenn der down ist dann auf Server 2.

Das Problem ist halt nur, dass der erste Seitenaufruf von einem normalen Webspace-Account ausgeht und nur PHP dafür zur Verfügung steht und - ganz ehrlich - mein PHP Wissen dafür nicht reicht.
 
Das beste wäre es wenn du es über DNS regel könntest...
Mal schauen vielleicht hat hier jemand ne Idee.
 
Ich würde auf einem der Rootserver einen Loadbalancer installieren, dann dort die Regel vergeben das zuerst der "Normale" Webspaceserver abgefragt wird und wenn der doch mal Offline geht dann werden die beiden Rootserver benutzt.

Dafür sollte dann aber auch die Datenbank auf einem der Roots ausgelagert werden und du müsstest einmalig den DNS Record deiner Domain ändern.

Bei Intresse kann ich da kurz was zu schreiben ...
 
Back
Top